2016-10-20 43 views
4

現在,我使用GEVENT運行的異步任務,我想請教兩個問題:的Python:優先處理任務,並沒有鎖

  • 有沒有辦法來執行,這將永遠異步執行特定任務(而不是在每個任務中使用鎖)
  • 有沒有辦法讓優先 Gevent中產生的任務?就像一組將在所有其他任務完成時將執行的優先級較低的任務。 例如,即聽不同的插座時,每個任務處理各種優先插座請求

如果它不可能在GEVENT,是有它可以做任何其他庫兩項任務?

編輯
也許芹菜可幫助我在這裏?

回答

1

如果您想要管理計算資源,Python異步庫在這裏無法提供幫助,因爲AFAIK既沒有優先級調度程序。所有的綠色線程都是平等的。

任務隊列通常有一個優先級的概念,所以Celery或Beanstalk是一種方法。

如果您的問題不需要任務(重複)執行保證,持久性,多機器工作分配,那麼我只需啓動少量工作進程,使用操作系統爲其分配CPU,IO,磁盤優先級,並通過操作系統發送工作/結果UNIX套接字DGRAM。一種特別簡單的任務隊列版本。如果你這樣做,請分享你的工作作爲開源項目,我相信有這種解決方案的需求。

+1

謝謝,也許我會在週末做一些開源項目來解決我的問題..但是在此期間,我將只使用Gevent和鎖,並將所有低優先級任務放在不同的低優先級進程中 – cydan