2010-05-24 116 views
2

是否有可能有一個隊列,並管理在命令行中執行的處理的服務器端程序?服務器端的命令行排隊

我工作的項目需要從用戶的圖像,修改圖像,然後它適用於作爲紋理的三維形狀。該3D場景由混合器/ Cinema 4d在命令行生成,並將其作爲圖像輸出。正是這個過程需要排隊或以某種方式從服務器端程序進行管理。發回給用戶的最終結果是包含動畫3D形狀的視頻,其圖像作爲應用於其的紋理。

這些渲染可能需要一段時間(他們可能沒有),但我怎麼能確保他們在排隊的方式在合適的時間執行,這樣做?

這將優選在python來完成。

回答

1

缺乏關於如何/你爲什麼這樣做排隊更多詳細資料(只能同時運行這麼多,東西都需要以正確的順序做,等等?),很難提出具體的解決方案。但是,任何情況的基本答案都是您想使用subprocess module來觸發流程,然後您可以使用該模塊提供給您的工具來觀察它們,直到它們完成,然後執行下一個在隊列中。

+0

因爲這個過程是3D渲染,我需要確保,如果系統是緩慢的,然後有排隊過程的可能性。我想50個並行渲染會使系統崩潰或產生某種負面影響。子流程模塊看起來正是我所需要的。有關我如何運行它的更多細節,你是否仍然認爲子進程是正確的選擇? – betamax 2010-05-24 12:31:28

+0

絕對 - 您可以根據您的系統決定您一次可以運行多少次,然後在達到此限制時排隊請求,並在前一次渲染完成後提供服務。 (你也可以做更多的奇特的事情,比如查詢系統的CPU和內存使用情況,並決定是否啓動更多進程是個好主意,但這與'subprocess'模塊無關:-)) – 2010-05-24 12:58:10