Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

定时容器

使用 Cron 触发器按计划运行容器

要按计划启动容器,您可以使用 Workers Cron 触发器

有关完整示例,请参阅 定时容器模板

在您的 Wrangler 配置中使用 cron 表达式指定计划:

{
"name": "cron-container",
"main": "src/index.ts",
"triggers": {
"crons": [
"*/2 * * * *" // 每 2 分钟运行一次
]
},
"containers": [
{
"class_name": "CronContainer",
"image": "./Dockerfile"
}
],
"durable_objects": {
"bindings": [
{
"class_name": "CronContainer",
"name": "CRON_CONTAINER"
}
]
},
"migrations": [
{
"new_sqlite_classes": ["CronContainer"],
"tag": "v1"
}
]
}

然后在您的 Worker 中,从 "scheduled" 处理程序调用您的容器:

import { Container, getContainer } from "@cloudflare/containers";
export class CronContainer extends Container {
sleepAfter = "5m";
manualStart = true;
}
export default {
async fetch(): Promise<Response> {
return new Response("此 Worker 运行 cron 作业以按计划执行容器。");
},
async scheduled(
_controller: any,
env: { CRON_CONTAINER: DurableObjectNamespace<CronContainer> },
) {
await getContainer(env.CRON_CONTAINER).startContainer({
envVars: {
MESSAGE: "开始时间: " + new Date().toISOString(),
},
});
},
};