1

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

延迟任务是处理这个问题的方法吗?

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

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

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

4

2 回答 2

2

是的,这是一个很好的方法,你所要做的就是_countdown在你的延迟调用中设置,这是你想要等待多少秒,直到这个任务将被执行。

来自文档的示例:

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

或者您可以简单地使用任务 API,您可以在其中设置所有不同的参数,以了解您希望何时以及如何准确地执行此任务。无论哪种方式最适合您,您都可以使用etacountdown,从 GAE 的角度来看,它是完全一样的。

于 2012-09-29T16:32:43.757 回答
-1

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

这样您就可以处理任意数量的预定请求。您最终不会完成数千个任务。您可以知道请求是否会运行,它们何时运行等......

于 2012-09-30T00:30:11.333 回答