1

我的许多处理程序将任务添加到任务队列以执行非关键后台处理。由于此处理并不重要,因此如果对 taskqueue.add() 的调用引发异常,我的代码将忽略它。

今晚任务队列似乎下降了大约半个小时。尽管我的处理程序正确地忽略了失败,但他们用了大约 5 秒的时间让 taskqueue.add() 调用超时并继续处理页面的其余部分。因此,这使我的网站运行非常缓慢。

那么,是否有可能将任务异步排队——这意味着一种添加任务的方式,而无需等待查看添加是否成功?

或者,有没有办法将超时从 5 秒减少到例如 1 秒?

谢谢。

4

3 回答 3

1

我认为您对此无能为力,因为该add方法下的 RPC 调用是同步阻塞API 调用。

您可以尝试使用Capabilities API添加一些检查。

于 2011-03-28T19:38:52.133 回答
1

您可以使用新的任务队列方法create_rpcadd_async. 如果您不关心添加是否成功,只需调用add_async并忽略结果。如果您关心,但只想等待 1 秒,请在调用时设置截止日期create_rpc,并将返回值用作 RPC 参数add_async。调用get_result以了解任务是否已成功添加。

于 2013-03-28T03:34:20.897 回答
0

我很确定 GAE 宣布 TQ 添加将与下一个版本(实验性功能)异步。

于 2013-03-28T18:41:34.097 回答