任务队列设置精确/近似执行时间
在谷歌应用引擎(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)