Google AppEngine和Threaded Workers
我目前正在尝试开发一些使用Google AppEngine的东西,我使用Python作为运行时,并且需要一些建议来设置以下内容。Google AppEngine和Threaded Workers
我正在运行一个为客户端提供JSON数据的Web服务器,这些数据来自于我必须从中提取数据的外部服务。
我需要做的是运行一个后台系统,它将检查memcache是否有任何所需的ID,如果有我需要从外部源获取该ID的一些数据的ID和将数据放入memecache中。
如果有多个ID,> 30我需要尽可能快速和有效地提取所有30个请求。
我是Python开发和AppEngine的新手,所以任何建议你们可以给予很大。
谢谢。
您可以使用“后端”或“任务队列”在后台运行进程。任务有10分钟的运行时间限制,后端没有运行时间限制。还有一个可以定期触发请求的cronjob机制。
您可以使用“URLFetch”服务从外部服务器获取数据。
注意,使用内存缓存为前端和后端之间的通信机制是不可靠的 - 内存缓存的内容可以在任何时候被部分或完全被擦除(和它确实发生从时间到时间)。
另外请注意,你不能查询你的memcache提前不知道确切的密钥。最好使用任务队列排队请求,而不是使用memcache,或将数据存储用作存储机制。
所以,如果我队列中的一个任务时,它得到的执行一次右侧,然后内完成这项任务,我可以重新排队? – RobertPitt 2012-03-21 18:37:37
是的,任务可以创建其他任务。但是,如果一个任务返回一个HTTP错误,它将被重试(以指数回退)。请参阅我们出色的任务队列文档。 http://code.google.com/appengine/docs/python/taskqueue/ – 2012-03-22 04:28:08
S /任务队列 – schuppe 2012-03-21 15:21:24
感谢@schuppe 20/10 /分钟的最后期限固定 – 2012-03-21 15:45:11