步骤1:
纳入程序包依赖项
纳入程序包依赖项
您必须创建或更新onInstallOrUpdateTask才能安排EPG同步任务。
onInstallOrUpdateTaskonInstallOrUpdateTask任务,请不要再创建一个。跳过此步骤,将步骤2中的逻辑合并到现有的源文件中。例如,它可能是您的OnInstallOrUpdate.ts文件。
[components]
## <其他与组件相关的条目>
[[components.task]]
## 定义需要运行“应用安装/更新时”的任务
id = "<程序包ID>.onInstallOrUpdateTask"
runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0"
## 为每个组件定义一个进程组
[processes]
## <其他与进程相关的条目>
[[processes.group]]
component-ids = ["<程序包ID>.onInstallOrUpdateTask"]
[tasks]
## 要求系统在安装和应用更新时运行'onInstallOrUpdateTask'任务
[[tasks.work]]
component-id = "<程序包ID>.onInstallOrUpdateTask"
mode = "install"
定义应用的onInstallOrUpdateTask,方法是在src文件夹中创建包含以下内容的OnInstallOrUpdate.ts文件。此任务在应用安装和更新时运行。
import {EpgSyncTaskScheduler} from '@amazon-devices/kepler-epg-sync-scheduler';
import { UtcTimePropertiesBuilder } from '@amazon-devices/kepler-epg-sync-scheduler';
const doTask = async (): Promise<void> => {
console.info('安排EPG同步任务');
// 待办事项: 如果客户有权使用您的应用中的任何频道,
// 选择以下选项之一以安排EPG同步任务。
// 如果多次调用“scheduleTask()”或“scheduleTaskWithExecutionWindow()”,
// 则最新的EPG同步任务方法调用将在重新启动时履行并保留。
// 选项1: 以给定的间隔安排EPG同步任务。
// 如果启用了此项,请确保在tst/task/OnInstallOrUpdateTask.test.ts中启用了“scheduleTask”的测试。
await EpgSyncTaskScheduler.scheduleTask(
'<程序包Id>.epgSyncTask', // 同步任务的组件ID
60 * 24, // 24小时(以分钟为单位)
);
// 选项2: 用执行窗口安排任务,即在UTC时间每天凌晨2点到4点之间运行任务。
// 如果启用了此项,请确保在tst/task/OnInstallOrUpdateTask.test.ts中启用了“scheduleTaskWithExecutionWindow”的测试。
// let timeProperties = new UtcTimePropertiesBuilder()
// .startHour(2)
// .startMinute(0)
// .startSecond(0)
// .executionWindowInMinutes(120)
// .build();
// await EpgSyncTaskScheduler.scheduleTaskWithExecutionWindow(
// '<程序包ID>.epgSyncTask', // 同步任务的组件ID
// timeProperties,
// );
};
export default doTask;
当您的onInstallOrUpdate任务运行时,您应该会看到和如下所示类似的日志行:
INFO ktf.tm.nests:Successfully scheduled EPG Sync task
Last updated: 2025年9月30日