Topik ini menjelaskan kondisi pemicu callback pulled-stream relay dan menyediakan contoh muatan callback.
Callback events
Callback pulled-stream relay dipicu oleh dua jenis event: perubahan status task dan exit task.
Sebuah task pulled-stream relay dapat berada dalam salah satu status berikut:
State | Description |
Idle | Status awal task yang dibuat melalui panggilan API. |
Running | Status ketika task mulai secara otomatis pada waktu yang dijadwalkan atau dimulai ulang melalui panggilan API. |
Recovering | Status task yang sedang mencoba ulang setelah terjadi error eksekusi. |
Offline | Status setelah task berhenti secara otomatis karena upaya retry habis waktu tunggunya, atau dihentikan melalui panggilan API. |
Exit | Status setelah task dihapus, baik secara otomatis saat waktu akhir yang dijadwalkan tercapai maupun melalui panggilan API. |
Callback for task state changes
Description
Callback dipicu ketika status task pulled-stream relay berubah menjadi Running, Recovering, atau Offline.
Trigger conditions
Status task berubah menjadi
Runningketika task dimulai secara otomatis pada Waktu mulai yang dijadwalkan atau dimulai ulang melalui panggilan API.Status task berubah menjadi
Recoveringketika task mengalami error selama eksekusi.Status task berubah menjadi
Offlineketika task dihentikan melalui panggilan API atau upaya retry-nya habis waktu tunggunya.
Callback for task exit
Description
Sistem memicu callback ketika task pulled-stream relay melakukan exit. Exit menandakan bahwa sistem telah menghapus task yang sudah kedaluwarsa.
Trigger conditions
Status task berubah menjadi
Exitketika sistem secara otomatis menghapus task karena waktu akhir yang dijadwalkan telah tercapai.Status task berubah menjadi
Exitketika task dihapus melalui panggilan API.
Callback payload
Sistem mengirimkan callback sebagai objek JSON dalam badan permintaan HTTP POST ke URL callback yang Anda tentukan. Anda dapat mengurai badan permintaan tersebut untuk mengambil konten callback.
Parameter dan contoh muatan untuk callback perubahan status task
Tabel 1. Muatan callback untuk perubahan status task
Parameter
Description
Event
Nama event. Nilai tetap:
LivePullToPushRunning.EventTime
Waktu terjadinya event, dalam bentuk Unix timestamp (dalam detik).
TaskId
ID task.
TaskInfo
Informasi task.
TaskStatus
Status saat ini dari task. Nilai yang valid:
1: Running
2: Recovering
3: Offline
TaskInvalidReason
Alasan task berjalan tidak normal atau berhenti. Nilai yang valid:
PullStreamFailed: Gagal menarik aliran.PushStreamFailed: Gagal meneruskan aliran.TriggerByUser: Task dihentikan melalui panggilan API.UnknownError: Terjadi error yang tidak diketahui.RetryTimesOffline: Upaya retry habis waktu tunggunya.
CatatanSistem hanya mengembalikan parameter ini ketika status task adalah
Offline.Contoh muatan
{ "Event": "LivePullToPushRunning", "EventTime": "1725501246", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-*******-*****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.******.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "1" }Parameter dan contoh muatan untuk callback exit task
Tabel 2. Muatan callback untuk exit task
Parameter
Description
Event
Nama event. Nilai tetap:
LivePullToPushExit.EventTime
Waktu terjadinya event, dalam bentuk Unix timestamp (dalam detik).
TaskId
ID task.
TaskInfo
Informasi task.
TaskStatus
Status saat ini dari task. Nilai yang valid:
-1: Exit
TaskExitTime
Waktu task melakukan exit, dalam bentuk Unix timestamp (dalam detik).
TaskExitReason
Alasan task melakukan exit. Nilai yang valid:
TriggerByUser: Pengguna menghapus task melalui panggilan API.OverEndTime: Waktu akhir yang ditentukan telah tercapai.
Contoh muatan
{ "Event": "LivePullToPushExit", "EventTime": "1725501483", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-******-****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.*****.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "-1", "TaskExitTime": "1725501483", "TaskExitReason": "OverEndTime", }