2010-04-24 55 views
2

此代碼可以在Google App Engine中創建線程嗎?如果不是,爲什麼不呢? 類LogText(db.Model): 含量= db.StringProperty(多=真)我可以使用Python在App Enging中創建線程嗎?

class MyThread(threading.Thread): 
    def __init__(self,threadname): 
     threading.Thread.__init__(self, name=threadname) 
    def run(self,request): 
     log=LogText() 
     log.content=request.POST.get('content',None) 
     log.put() 

def Log(request): 
    thr = MyThread('haha') 
    thr.run(request) 

    return HttpResponse('') 
+0

不確定你使用的是哪個Python版本,但是這不會與Python 2.7和3.x並行運行 - 你會阻塞'thr.run(request'),而是應該啓動一個線程't.start()'。 – 2015-07-28 13:37:44

回答

2

App Engine不允許你創建新的線程,可能是因爲應用程序引擎的主要目標是建立簡單的請求 - 響應應用程序和線程通常不被視爲「簡單」。

管理應用程序的線程以防止濫用(意外或其他)對App Engine來說很難或不可能完成,因此他們完全禁止它們。

+0

+1好答案!!! – 2010-04-26 03:48:06

+2

這個答案有點過時。新的Python 2.7運行時將支持多線程 - http://code.google.com/appengine/docs/python /python27/newin27.html#Multithreading – hwiechers 2011-10-26 15:25:09

相關問題