as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

@amazon-devices/kepler-epg-sync-scheduler

@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集成概述

模块


Last updated: 2025年11月10日