如何让网站程序定时执行

技术原理

cron+taskqueue

有人说直接用cron就行了,为什么还要用taskqueue呢,是这样的,如果加入一个定时执行任务就要建立一个cron计划的话未免太麻烦,也有可能受到服务器资源的限制,比如我用新浪SAE只能设置15个cron计划,那假如我有一千个定时执行任务,就没办法了。

所以我采取以下策略

我把每个计划任务分成两个部分:需要请求的URL和POST数据,post数据用json格式储存。创建两个表circle表和task表,如果是隔特定时间执行一次任务就在task表中创建一个任务并把任务ID加入circle表中。如果是定时执行,比如x时x分x秒执行,只需把该任务加入task表中即可,并附上时间信息。

然后建了15个cron任务,每隔4秒执行特定的一个脚本,该脚本任务是从task表和circle表中读取时间信息,判断哪个任务需要当前执行,然后取出加入taskqueue队列。。

 

Leave a Reply

Time limit is exhausted. Please reload CAPTCHA.

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据