greenlets

    0熱度

    1回答

    會是有意義的使用greenlet.greenlet作爲裝飾,常規的函數轉換成greenlet如下: from greenlet import greenlet @greenlet def f(args): # ... z = g.switch(u) # ... @greenlet def g(args): # ... def main(arg

    3熱度

    1回答

    我從Django應用程序一起使用PyMongo和gevent。在生產中,它被託管在Gunicorn上。 我在創建應用程序時創建了一個Connection對象。我有一些後臺任務連續運行並每隔幾秒執行一次數據庫操作。 該應用程序還可以像任何Django應用程序一樣提供HTTP請求。 我遇到的問題是以下幾點。它只發生在生產環境中,我無法在我的開發環境中重現它。當我讓應用程序閒置一段時間(儘管後臺任務仍在

    1熱度

    2回答

    在我的Linux x86_64主機上,我想爲我的PowerPC目標交叉編譯一些額外的Python模塊,具體來說就是greenlet,gevent,gevent-websockets。目前,我只是試圖交叉構建greenlet模塊。 使用信息從這個站點:使用此設置爲我的編譯環境 # Undo variables for cross-compile environment unset ROOT un

    4熱度

    1回答

    我一直在讀了好幾個小時了,我完全可以想出蟒蛇多線程如何比單線程快。 真正的問題來自GIL莖。如果有GIL,並且任何時候只有一個線程真的在運行,那麼多線程如何比單個線程更快? 我閱讀了一些操作GIL被釋放(如寫入文件)。這是什麼使多線程更快? 而關於greenlets。這些如何幫助併發?到目前爲止,我所看到的所有目的都是在函數和不太複雜的yield函數之間輕鬆切換。 編輯:怎麼在世界上像旋風一臺服務

    3熱度

    2回答

    我正在使用同一應用程序內的gevent和龍捲風,以便不支持龍捲風的ioloop的庫可以被制服以使用gevent異步執行。我想我需要運行兩個真正的系統線程,一個專用於Tornado的ioloop,另一個專用於gevent的循環。但是,嘗試調用系統線程內的任何gevent函數將返回not implemented Error,gevent cannot be used inside threads。因此

    1熱度

    1回答

    我想知道是否有人嘗試使用[gevent] [1]和[socksipy] [2]進行併發下載。

    1熱度

    1回答

    我試圖捕獲greenlet中引發的異常。根據this tutorial,不幸的是'在Greenlet提出的例外,留在Greenlet'。在下面的代碼中,我有一個生成爬網小程序的同步方法。那些抓取greenlet引發了HTTPError異常,我需要在同步方法的主體中捕獲這個異常。根據例外情況,在同步方法中,我將設置Account對象的適當狀態。任何想法如何捕獲同步方法中的greenlet中引發的異常

    2熱度

    1回答

    代碼: import gevent import time def func(a, t): time.sleep(t) print "got here", a gevent.spawn(func, 'a', 4) gevent.spawn(func, 'b', 0).join() time.sleep(3) print "exit" 輸出: got here

    4熱度

    1回答

    在使用gevent時,無論何時孩子greenlet引發異常,我都希望它冒泡到父級(理想情況下父級引發異常)。在greenlet的文檔中,它表示這是自動完成的,但在gevent中似乎不是這種情況。 如何在gevent中引發異常? 謝謝!

    0熱度

    2回答

    我有兩個函數接收來自兩個不同連接的數據,我應該在從其中一個連接獲得結果後關閉兩個連接。 def first(): gevent.sleep(randint(1, 100)) # i don't know how much time it will work return 'foo' def second(): gevent.sleep(randint(1, 100