使用cron和任务队列引入时间随机性

Gre*_*reg 5 google-app-engine scheduled-tasks

我正在寻找一些工程创意来解决Google App Engine上的问题.

我有少量定期运行的作业,但我希望这些作业能够随机执行.因此,我不希望每周二下午2点开始工作,而是希望每周二"下午2点到下午5点之间"运行.

目前,我正在使用以下算法......

  1. Cron工作每周二下午2:00运行
  2. cron处理程序查找要运行的特定作业的列表,并为每个离散任务创建任务队列事件.
  3. 相应的任务队列处理程序通过在1和N之间选择一个随机数来决定它是否应该实际运行.如果随机数是X,则执行该作业.否则,它会创建一个新的任务队列事件以再次尝试.每个任务都有最大队列尝试次数,以保证作业在某个时刻实际完成.

我已经意识到另一个解决方案是创建一个速度非常慢的任务队列,当cron作业填满队列时,它会在执行此操作之前随机重新排序任务列表.

App Engine用户的任何想法?

Bem*_*mmu 7

在下午2点有一个cron作业,在0到3小时之间随机倒计时排队任务?

  • 创建0到10800之间的随机数,并将其作为*倒计时*任务参数传递http://code.google.com/intl/it/appengine/docs/python/taskqueue/tasks.html (2认同)