GAE:如何正确处理谷歌关闭后端实例?

时间:2014-04-09 17:51:08

标签: python google-app-engine module backend

是否有一个很好的教程,说明如何为GAE正确编写后端/模块来处理关机?

这是我得到的错误:

2014-04-09 12:15:44.726 Process terminated because the backend took too long to shutdown.

我有一个过程需要几个小时,我知道我必须基本上将状态保存到内存缓存中,然后重新启动它。

是否有以下教程: 1)如何处理关机请求 2)如何保存到memcache 3)如何重启模块

1)和2)看起来很简单......重新启动模块是我不确定的。我的模块作为cron作业启动,但有没有办法使用关闭请求来触发我的模块的另一个实例启动?

1 个答案:

答案 0 :(得分:1)

如果您有大量数据操作的大型工作,那么您可以查看map reduce

无论如何,你应该将你的大工作分解为更小的幂等任务。幂等(没有副作用)基本上意味着您可以重新运行获得相同结果的任务。

一旦你有较小的任务,你可以选择通过任务队列安排它们或使用map reduce框架。

注意事项:

  1. 您无法保证获得关机回拨。我们的后端实例每天都会重新启动,我们的关闭挂钩不会被调用。
  2. Memcache不可靠。不要将其视为永久存储。