使用GAE安排GET请求

时间:2012-09-29 16:25:38

标签: google-app-engine

我一直在研究如何使用GAE应用程序安排GET请求。具体来说,我希望我的应用程序在请求后1小时通过获取指向另一个应用程序API的其他URL来响应。

Deferred Tasks是处理此问题的方法吗?

我还发现任务有一个“eta”参数,指定最早的执行时间。这可能比“_countdown”更受欢迎吗?

或调查Cron工作?这些GET请求不会定期发生,所以我不知道Cron的工作是否合适。

谢谢!如有必要,请帮我澄清。

2 个答案:

答案 0 :(得分:2)

是的,这是一个很好的方法,您需要做的就是在延期通话中设置_countdown,这是您要等待执行此任务的秒数。

来自docs

的示例
deferred.defer(do_something_expensive, _countdown=3600, _queue="myqueue")

或者您可以简单地使用Task API,您可以在其中设置所有不同参数,以确定何时以及如何执行此任务。无论您最喜欢什么,都可以使用etacountdown,从GAE角度来看,它完全相同。

答案 1 :(得分:-1)

只要您不想要第二个准确度(比如精确度)。我会将请求添加到实现请求队列的数据存储区。然后每分钟运行一次cron作业,查找为该时间段安排的请求。然后我会提交一个任务来执行请求。为任务命名,这样您就不可能重新提交相同的任务。任务可以重试几次(如果有错误),那么您可以在队列中将请求标记为已完成。

这样您就可以处理任意数量的计划请求。你最终没有成千上万的任务。您可以知道请求是否会运行,何时运行等...