@amazon-devices/kepler-epg-sync-scheduler
@amazon-devices/kepler-epg-sync-scheduler程序包提供API,用于在适用于Vega的React Native应用中计划电子节目指南 (EPG) 同步任务。它提供了灵活的计划选项,包括基于间隔和基于时间窗口执行任务。
概览
Kepler EPG同步调度程序允许您:
- 按固定间隔安排周期性EPG同步任务
- 在特定时间段内(例如,世界标准时间凌晨2点至凌晨4点之间)计划EPG同步任务
- 取消现有的计划任务
公共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分钟 [含] 之间)
- 行为:
- 计划后立即运行任务
- 然后按指定的间隔定期执行
- 一次只能安排一个EPG同步任务
- 设备重启后依然存在
- 抛出:
InternalError:如果计划失败 - 返回值: 在计划完成时进行解析的Promise。
scheduleTaskWithExecutionWindow(componentId: string, timeProperties: ITimeProperties): Promise<void>
安排EPG同步任务,每天在特定时间段内运行。
- 参数:
componentId: 需要调度的JS后台任务的组件ID。timeProperties: 任务执行的时间限制(使用UtcTimePropertiesBuilder创建)
- 行为:
- 计划后立即运行任务
- 然后安排每天在指定的UTC时间窗口内执行
- 一次只能安排一个EPG同步任务
- 设备重启后依然存在
- 抛出:
InternalError:如果计划失败 - 返回值: 在计划完成时进行解析的Promise。
cancelScheduledTasks(): Promise<void>
取消所有已安排的EPG同步任务。
- 行为:
- 使用
scheduleTask()或scheduleTaskWithExecutionWindow()取消已安排的任务 - 即使当前没有安排任何任务,也会成功
- 使用
- 抛出:
InternalError:如果取消失败 - 返回值: 在取消完成时进行解析的Promise。
时间属性
ITimeProperties
描述任务执行时间限制的接口。使用UtcTimePropertiesBuilder创建实例。
UtcTimePropertiesBuilder
一个生成器类,用于创建带有执行窗口的基于UTC的时间属性。
方法:
startHour(hour: number): UtcTimePropertiesBuilder
设置执行窗口的开始小时值 (0-23)。
- 必填字段
- 抛出:
InvalidArgumentError:如果小时值不在0-23之间 - 抛出:
IllegalStateError:如果生成器已经用过了
startMinute(minute: number): UtcTimePropertiesBuilder
设置执行窗口的开始分钟值 (0-59)。
- 必填字段
- 抛出:
InvalidArgumentError:如果分钟值不在0-59之间 - 抛出:
IllegalStateError:如果生成器已经用过了
startSecond(second: number): UtcTimePropertiesBuilder
设置执行窗口的开始秒数值 (0-59)。
- 必填字段
- 抛出:
InvalidArgumentError:如果秒数值不在0-59之间 - 抛出:
IllegalStateError:如果生成器已经用过了
executionWindowInMinutes(window: number): UtcTimePropertiesBuilder
设置执行窗口的长度,以分钟为单位。
- 可选字段(默认为60分钟)
- 抛出:
InvalidArgumentError:如果窗口长度小于60分钟 - 抛出:
IllegalStateError:如果生成器已经用过了
build(): ITimeProperties
生成最终的TimeProperties对象。
- 抛出:
InvalidArgumentError:如果缺少必填字段 - 抛出:
IllegalStateError:如果生成器已经用过了 - 注意: 您只能使用生成器实例一次
错误类型
InternalError
自定义错误,表明在计划EPG同步任务时出现了问题。
InvalidArgumentError
由于参数无效而无法创建新对象时引发的异常。
IllegalStateError
在已经使用生成器构建对象之后调用生成器函数时引发的异常。
重要注意事项
- 在任何时间点您只能安排一个EPG同步任务
- 最近的计划调用将覆盖之前的任何计划
- 设备重启后,计划任务仍然有效
- 所有基于时间的计划均使用UTC时间
- 您只能使用生成器实例一次,并且在调用
build()后不能重复使用它 - 间隔计划接受介于5到1440分钟(1天)之间的值
- 执行时间段计划需要至少60分钟(1小时)
错误处理
所有计划操作都是异步的,可能会抛出InternalError异常。务必将计划调用封装在try-catch区块中,或者合理处理Promise拒绝。
用于时间属性的生成器模式可能会对无效的参数抛出InvalidArgumentError,或者如果尝试重用生成器实例,则可能会抛出IllegalStateError。
开发者指南
有关详细的集成步骤,请参阅EPG集成概述。
模块
- 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年11月10日

