任务队列设置精确/近似执行时间

2 投票
1 回答
763 浏览
提问于 2025-04-16 14:11

在谷歌应用引擎(GAE)上,是否可以设置定时任务的确切执行时间,或者至少是大致的执行时间,比如每秒执行5次,或者每小时执行100次?

1 个回答

6

如果你想要某个事情在特定时间定期发生,那你应该使用cron。你需要创建一个处理程序,这个处理程序会生成任务,然后让cron在特定时间触发它。

如果你需要更灵活的方式来处理这个问题(也就是说,事情发生的频率不够规律,不能用cron),那么你可以在创建任务时设置一个countdown,这样可以延迟任务的执行时间。

[countdown是] 这个任务应该在未来多少秒后执行,从插入任务的时间开始计算。目前默认值是零。

详细信息请查看Task

比如说,如果你想在今天下午5点执行你的任务,你可以先大致计算一下距离你想要执行任务的时间还有多少秒,然后把这个任务添加到队列中:

seconds_til_start = (datetime(2011,3,22,17,00) - datetime.now()).seconds
taskqueue.add(url='/yourtask', countdown=seconds_til_start)

撰写回答