![]() |
1
12
除了在Google App Engine中生成线程外,还有一种有限的替代方法,称为任务队列: http://code.google.com/appengine/docs/python/taskqueue/ 编辑 从 http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox
正如其他人指出的,由于安全原因,不支持线程来沙盒应用程序。 googleappengine中还有许多其他限制,迫使开发者创建可伸缩的应用程序。我认为任务队列只是这些限制中的另一个,因为与在处理HTTP请求的当前计算机上创建线程不同,任务被放入队列中,然后可以在队列中调度并由其他计算机执行。任务队列允许以可伸缩的方式在机器之间共享和分配工作。 |
![]() |
2
7
appengine使用了一个基于请求的执行模型,也就是说,所有的工作都限定在一个请求的范围内,不管是面对一个请求的用户,还是由另一个系统(如任务队列)初始化的用户。虽然可以在这种环境中使用线程,但多线程非常有用的大多数用例都涉及到长时间运行的进程(App Engine不是为这些进程而设计的),或者离线工作,在这种情况下,最好使用App Engine提供的可伸缩设施,如任务队列。
|
![]() |
3
3
我认为这是一个误导性的问题。应用程序引擎不允许应用程序生成线程,但应用程序引擎可能会启动应用程序的多个实例,或者使用某种线程或多进程请求处理程序。我不知道具体细节,但如果没有某种并行性,应用程序引擎将是一个非常无用的平台。
我最初的回答错误地暗示线程不是一个有用的特性,它们有很多用途,但是大多数web开发人员并不在他们的应用程序中管理线程。线程通常在应用程序堆栈的较低级别进行管理。 |
![]() |
4
2
|
![]() |
5
2
自提出此问题以来推出的一个新功能是 background threads . 虽然常规线程在给定请求结束时加入(它们不能超过请求),但后台线程没有此限制。
示例代码:
|
|
6
0
|
![]() |
Itamar Cohen · 谷歌管理的SSL证书不起作用 2 年前 |
![]() |
cozimo · 谷歌云警告:自动应用检测已被弃用,并将很快被删除 6 年前 |
![]() |
Noah Watkins · ndb的控制索引。Expando模型属性 6 年前 |