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”服务从外部服务器获取数据。

+0

S /任务队列 – schuppe 2012-03-21 15:21:24

+0

感谢@schuppe 20/10 /分钟的最后期限固定 – 2012-03-21 15:45:11

注意,使用内存缓存为前端和后端之间的通信机制是不可靠的 - 内存缓存的内容可以在任何时候被部分或完全被擦除(和它确实发生从时间到时间)。

另外请注意,你不能查询你的memcache提前不知道确切的密钥。最好使用任务队列排队请求,而不是使用memcache,或将数据存储用作存储机制。

+0

所以,如果我队列中的一个任务时,它得到的执行一次右侧,然后内完成这项任务,我可以重新排队? – RobertPitt 2012-03-21 18:37:37

+0

是的,任务可以创建其他任务。但是,如果一个任务返回一个HTTP错误,它将被重试(以指数回退)。请参阅我们出色的任务队列文档。 http://code.google.com/appengine/docs/python/taskqueue/ – 2012-03-22 04:28:08