編輯:我將它發佈到python-list和tutor-list,沒有響應。任何意見將不勝感激。在Python中編碼一個AMQP監聽和麪向用戶的守護進程
寫一個可以爲不同類型的事件(AMQP消息,子進程的解析輸出,HTTP請求)執行回調的併發守護進程的最佳方法是什麼?
我在考慮twisted,內置threading模塊和greenlet。我必須承認,我並不熟悉併發編程和一般的Python編程(以前是數據分析驅動的程序員)。任何有關線程/併發編程的資源(特別是守護進程......不僅僅是多線程的單個任務)都將非常值得讚賞。
謝謝!
詳情:
1)監聽到AMQP的消息隊列和消息到達後執行的回調。 示例:剛剛啓動後,守護程序會不斷收聽Openstack Notifications messaging queue。當啓動虛擬機時,Openstack會通過主機名,IP地址等生成通知。守護程序應該讀取此消息並向日志中寫入一些信息(或將POST信息發送到服務器,或通知用戶..有些簡單)。
2)解析子流程的輸出並根據輸出執行回調。例如:每30秒鐘,運行一個系統命令「qstat」以查詢作業資源管理器(例如TORQUE)。類似的回調1)。
3)接收來自用戶的請求並處理它們。我認爲這將通過WSGI HTTP。 示例:用戶使用虛擬機模板提交XML模板。守護進程執行一些簡單的XML解析併爲作業資源管理器寫入作業腳本。作業提交給資源管理器,守護程序通過「qstat」和AMQP的消息持續檢查作業的狀態。它應該向用戶返回「實時」反饋並寫入日誌。