一种是在task的执行方法中再add一个一样路径的task(注意不能使用自定义队列名字), 这样会产生多一个队列.
但是方便好用,我一开始也是一直用这个.但是任务一多往往产生重复队列.要知道gae的task是没办法操作的,而且gae开发人也拒绝在下一个版本中加入更具体的操作队列的功能.不能不说是一个遗憾.
第二种方法也是后来我改用的,使用task队列自带的重试功能,自定义好queue.yaml文件后,一样很好用
里例如我的配置:
- name: hourwork
rate: 500/h
retry_parameters: #这里以下就是重复参数
task_retry_limit:200 #最大重复次数
task_age_limit: 1d #最大重复时间 这里是1天的意思
min_backoff_seconds: 30 #最小重复等待时间 秒
max_backoff_seconds: 60 #最大重复等待时间 秒
max_doublings: 0 #最小到最大重复时间的倍数
对了完成之后 最好使用appcfg.py update_queues提交一下,看看有没有错误
它可以重复同时满足条件:200次跟一天时间. 所以几乎是没限制了
然后在task的执行方法中return 一个404 或者 500 之类的错误他就会重复执行了