Release 7.0 - 230710.7.0
This release introduces a major new feature to Skylark - background task processing.
To allow the ingestion of large amounts of data with many relationships and availability rules, processing the majority of that data will now be handled asynchronously in a queue. This will make the response times for creates and updates faster, allowing for easier and much more consistent ingest processing.
This release also includes renames for some Skylark objects and some fixes, tweaks and improvements.
Features
Background Task Processing
The first Skylark functions to have background task processing enabled are:
createObject
updateObject
This means that every time an object is created or updated, any processing of availability, translation or (in the case of media files such as images) downloading is sent to a queue and handled asynchronously.
What does this mean for you? The response times from those queries will be much faster and consistent, but it also means the effects of availability won't be immediate as it was before. Instead you'll be able to track the processing using new queries via the Skylark API.
Responses from creates or update mutations now have a task_id
which can be found in the _context
object.
mutation {
createEpisode(episode: {
title: "My episode"
}) {
_context {
task_id
}
}
}
This task_id
can be used to get the status of processing status of the object you created/updated.
{
"data": {
"getSkylarkBackgroundTask": {
"status": "COMPLETE",
"messages": [
"Job started",
"Starting availability post-processing",
"Availability post-processing complete"
],
"created_at": "2023-07-10T11:16:59.481278+00:00",
"updated_at": "2023-07-10T11:17:04.917490+00:00"
}
}
}
Or you can view a list of tasks and filter by the task status:
{
listSkylarkBackgroundTask(status: QUEUED) {
objects {
task_id
messages
object_uid
}
}
}
Improvements
Skylark object rename
We've renamed two our of built in Skylark objects to make it clearer what their intended purpose is.
SkylarkChannel
has becomeSkylarkLiveStream
SkylarkEPGProgramme
has becomeSkylarkEPGProgram
Timezones while time travelling
It's now possible to pass a timezone other than UTC while using the x-time-travel
header using the ISO8601 datetime format.
For example:
- Time travel with -5 (US Eastern) timezone:
x-time-travel: 2030-01-01T00:00:00-05:00
- Time travel with +1 (Central European) timezone:
x-time-travel: 2030-01-01T00:00:00+01:00