Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GAE:如何正确处理google关闭后端实例的问题?_Python_Google App Engine_Module_Backend - Fatal编程技术网

Python GAE:如何正确处理google关闭后端实例的问题?

Python GAE:如何正确处理google关闭后端实例的问题?,python,google-app-engine,module,backend,Python,Google App Engine,Module,Backend,是否有一个很好的教程可以帮助GAE正确地编写后端/模块来处理关机 这就是我得到的错误: 2014-04-09 12:15:44.726 Process terminated because the backend took too long to shutdown. 我有一个需要几个小时的过程,我知道我基本上必须将状态保存到memcache中,然后重新启动它 是否有以下方面的教程: 1) 如何处理关闭请求 2) 如何保存到memcache 3) 如何重新启动模块 1) 2)看起来很直截了当。。

是否有一个很好的教程可以帮助GAE正确地编写后端/模块来处理关机

这就是我得到的错误:

2014-04-09 12:15:44.726 Process terminated because the backend took too long to shutdown.
我有一个需要几个小时的过程,我知道我基本上必须将状态保存到memcache中,然后重新启动它

是否有以下方面的教程: 1) 如何处理关闭请求 2) 如何保存到memcache 3) 如何重新启动模块


1) 2)看起来很直截了当。。。重新启动模块是我不确定的事情。我的模块作为cron作业启动,但是有没有一种方法可以使用关机请求触发我的模块的另一个实例启动

如果您有大量的工作要处理大量的数据,那么您可能会考虑

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

一旦您有了较小的任务,您就可以选择通过任务队列或使用map reduce框架来调度它们

注意事项:

  • 您不一定会收到关机回调。我们的后端实例每天都会重新启动,我们的关闭挂钩不会被调用
  • Memcache不可靠。不要将其视为永久性存储

  • 感谢您的回复--这样我就可以轻松地并行化我的代码。。。是不是有一个脚本可以单独调用任务队列来执行较小的任务?基本上,脚本需要从远程服务器下载一个文件(~150mb压缩…500mb解压缩),并处理归档文件中的每个文件(~40000个文件)。我会启动40000个任务来处理每个文件吗?在前端实例上运行的任务有10分钟的限制(但在后端实例上没有限制)。您应该分解任务以适应此执行时间框架。刚刚完成将脚本更改为使用任务队列--使任务更容易跳跃。谢谢你的帮助,我真的很感激。