Usage
Automated broadcasts
There is a synchronization process that runs at a fixed interval (default: 1 minute) and checks if the streaming tasks that are scheduled to run in a given time window (default: 1 day) match the expected ones. If there is a mismatch, extra tasks are cancelled and missing tasks are scheduled.
Each streaming task is scheduled to run at a given time before the start of the broadcast (default: 15 minutes). The flow of the task is the following:
- Start running at the scheduled time.
- Fetch matching event and its instance from
beaverservice. - Download recording from
geckoservice and store it locally. - Wait until 10 seconds before the planned start of the broadcast.
- Reserve the stream in
octopusservice. - Wait until 1 second before the planned start of the broadcast.
- Start streaming the recording to the reserved stream.
- Finish after the whole recording has been streamed.
Tasks API
You can view and manage tasks by sending requests to /tasks endpoint.
Below are some examples of how to use it with curl.
List tasks
curl \
--request GET \
http://localhost:10800/tasks
Get generic task details
curl \
--request GET \
http://localhost:10800/tasks/85478e12-fd0d-4de3-a26b-cd1ec7f94f2b
Get details about a task with a specific status
curl \
--request GET \
http://localhost:10800/tasks/failed/85478e12-fd0d-4de3-a26b-cd1ec7f94f2b
Schedule a task manually
curl \
--request POST \
--header "Content-Type: application/json" \
--data '{
"operation": {"type": "test", "parameters": {}},
"condition": {"type": "now", "parameters": {}},
"dependencies": {}
}' \
http://localhost:10800/tasks
Cancel a task
curl \
--request DELETE \
http://localhost:10800/tasks/85478e12-fd0d-4de3-a26b-cd1ec7f94f2b
Clean stale tasks
curl \
--request POST \
--header "Content-Type: application/json" \
--data '{
"strategy": {"type": "all", "parameters": {}}
}' \
http://localhost:10800/tasks/clean
Ping
You can check the status of the service by sending
either a GET or HEAD request to the /ping endpoint.
The service should respond with a 204 No Content status code.
For example, you can use curl to do that:
curl \
--request HEAD \
--head \
http://localhost:10800/ping