@amazon-devices/kepler-epg-sync-scheduler
@amazon-devices/kepler-epg-sync-schedulerパッケージは、KeplerScriptアプリで電子番組表(EPG)同期タスクをスケジュールするためのAPIを提供します。インターバルベースとタイムウィンドウベースの両方で実行できる、柔軟なスケジュールオプションを備えています。
概要
Kepler EPG同期スケジューラでは、次のことができます。
- 定期的なEPG同期タスクを一定のインターバルでスケジュールする
- EPG同期タスクを特定のタイムウィンドウ内(UTCの午前2時~午前4時など)にスケジュールする
- スケジュールしたタスクをキャンセルする
パブリックAPI
メインスケジューラ
EpgSyncTaskScheduler
IEpgSyncTaskSchedulerインターフェイスを実装するメインスケジューラインスタンス。
import {EpgSyncTaskScheduler} from '@amazon-devices/kepler-epg-sync-scheduler';
インターフェイス
IEpgSyncTaskScheduler
EPG同期タスクのスケジューリング機能を公開するメインインターフェイス。
メソッド:
scheduleTask(componentId: string, interval: number): Promise<void>
EPG同期タスクを定期的に実行するようにスケジュールします。
- パラメーター:
componentId: スケジュールする必要があるJSバックグラウンドタスクのコンポーネントID。interval: 分単位の時間間隔(5分以上、1440分以下である必要があります)
- 動作:
- スケジュールされるとすぐにタスクを実行します。
- その後、指定された間隔で繰り返し実行されます。
- 一度にスケジュールできるのは1つのEPG同期タスクだけです。
- デバイスを再起動しても維持されます。
- スロー: スケジューリングが失敗した場合、
InternalErrorがスローされます。 - 戻り値: スケジューリングが完了したときに解決されるPromise
scheduleTaskWithExecutionWindow(componentId: string, timeProperties: ITimeProperties): Promise<void>
EPG同期タスクを特定のタイムウィンドウ内で毎日実行するようにスケジュールします。
- パラメーター:
componentId: スケジュールする必要があるJSバックグラウンドタスクのコンポーネントID。timeProperties: タスク実行の時間制約(UtcTimePropertiesBuilderを使用して作成)
- 動作:
- スケジュールされるとすぐにタスクを実行します。
- その後、指定されたUTCタイムウィンドウ内で毎日実行されます。
- 一度にスケジュールできるのは1つのEPG同期タスクだけです。
- デバイスを再起動しても維持されます。
- スロー: スケジューリングが失敗した場合、
InternalErrorがスローされます。 - 戻り値: スケジューリングが完了したときに解決されるPromise
cancelScheduledTasks(): Promise<void>
既存のスケジュールされたEPG同期タスクをすべてキャンセルします。
- 動作:
scheduleTask()またはscheduleTaskWithExecutionWindow()のいずれかによってスケジュールされたタスクをキャンセルします。- 現在スケジュールされているタスクがなくても成功します。
- スロー: キャンセルが失敗した場合、
InternalErrorがスローされます。 - 戻り値: キャンセルが完了したときに解決されるPromise
時間プロパティ
ITimeProperties
タスク実行の時間制約を説明するインターフェイス。UtcTimePropertiesBuilderを使用してインスタンスを作成します。
UtcTimePropertiesBuilder
実行ウィンドウを使用してUTCベースの時間プロパティを作成するためのビルダークラス。
メソッド:
startHour(hour: number): UtcTimePropertiesBuilder
実行ウィンドウの開始時間(0~23)を設定します。
- 必須のフィールドです。
- スロー: 時間が0~23の範囲でない場合、
InvalidArgumentErrorがスローされます。 - スロー: ビルダーが既に使用されている場合、
IllegalStateErrorがスローされます。
startMinute(minute: number): UtcTimePropertiesBuilder
実行ウィンドウの開始分(0~59)を設定します。
- 必須のフィールドです。
- スロー: 分が0~59の範囲でない場合、
InvalidArgumentErrorがスローされます。 - スロー: ビルダーが既に使用されている場合、
IllegalStateErrorがスローされます。
startSecond(second: number): UtcTimePropertiesBuilder
実行ウィンドウの開始秒(0~59)を設定します。
- 必須のフィールドです。
- スロー: 秒が0~59の範囲でない場合、
InvalidArgumentErrorがスローされます。 - スロー: ビルダーが既に使用されている場合、
IllegalStateErrorがスローされます。
executionWindowInMinutes(window: number): UtcTimePropertiesBuilder
実行ウィンドウの長さを分単位で設定します。
- 任意のフィールド(デフォルトは60分)
- スロー: ウィンドウが60分未満の場合、
InvalidArgumentErrorがスローされます。 - スロー: ビルダーが既に使用されている場合、
IllegalStateErrorがスローされます。
build(): ITimeProperties
最終的なTimePropertiesオブジェクトを構築します。
- スロー: 必須フィールドが設定されていない場合、
InvalidArgumentErrorがスローされます。 - スロー: ビルダーが既に使用されている場合、
IllegalStateErrorがスローされます。 - 注: ビルダーインスタンスは1回しか使用できません。
エラータイプ
InternalError
EPG同期タスクのスケジュール時に問題が発生したことを示すカスタムエラー。
InvalidArgumentError
無効な引数により新しいオブジェクトの作成に失敗した場合にスローされる例外。
IllegalStateError
ビルダーでオブジェクトを構築した後にビルダー関数が呼び出された場合にスローされる例外。
重要な注意事項
- どの時点でも、スケジュールできるEPG同期タスクは1つだけです。
- 最も新しいスケジュール呼び出しが、それ以前のスケジュールよりも優先されます。
- スケジュールされたタスクは、デバイスを再起動しても維持されます。
- 時間ベースのスケジュールはすべてUTC時間を使用します。
- ビルダーインスタンスは1回しか使用できず、
build()を呼び出した後で再利用することはできません。 - インターバルスケジュールには、5~1440分(1日)の値を指定できます。
- 実行ウィンドウスケジュールには、最低でも60分(1時間)のウィンドウが必要です。
エラー処理
スケジュール操作はすべて非同期であり、InternalError例外をスローする可能性があります。スケジュール呼び出しを必ずtry-catchブロックでラップするか、Promiseの拒否を適切に処理してください。
時間プロパティに使用されるビルダーパターンは、パラメーターが無効な場合にInvalidArgumentErrorをスローしたり、ビルダーインスタンスを再利用しようとするとIllegalStateErrorをスローしたりすることがあります。
開発者ガイド
詳細な統合手順については、https://developer.amazon.com/ja/docs/kepler-tv/overview-of-epg-integration.htmlを参照してください。
モジュール
- index
- turbo-modules/Builder
- turbo-modules/Builder
- turbo-modules/EpgSyncTaskScheduler
- turbo-modules/EpgSyncTaskScheduler
- turbo-modules/Error
- turbo-modules/Error
- turbo-modules/NativeEpgSyncTaskScheduler
- turbo-modules/NativeEpgSyncTaskScheduler
- turbo-modules/TimeProperties
- turbo-modules/TimeProperties
Last updated: 2025年10月2日

