2010-09-29 66 views
1

我需要导入一些数据以显示给用户,但页面执行时间超过30秒的限制。所以我决定将我的大代码分成几个任务并尝试任务队列。我添加大约10-20个任务来排队,并且应用引擎并行执行任务,同时用户正在等待数据。我如何确定我的任务已完成以尽快显示用户数据?我可以以某种方式迭代活动任务吗?Python应用引擎:任务队列

回答

2

我已经通过在memcached中保留任务的状态并通过轮询(通过Ajax)确定何时完成任务来解决此问题。

如果你这样做,最好是如果你总是可以在不查看memcached的情况下“手动”确定任务的状态,因为memcache总会有(苗条)机会下降或将被清除,或者任务正在运行。

+0

但是,如何确定任务的状态? – 2010-09-30 07:48:49

+0

目前我在数据存储中解决了这个创建表,我正在跟踪任务的状态。有更容易的方法吗? – 2010-09-30 09:10:46

+0

正如我所建议的,更简单的方法可能是将状态保留在内存缓存中。缺点是,如果你不能确定任务本身以外的任务状态,那么memcache可能偶尔会失败/关闭以进行维护/获取刷新/等,此时你会失去状态信息任何当前正在执行的任务。这在实践中对我来说不是问题。 – 2010-09-30 17:09:12