2011-03-12 36 views

回答

0

這取決於你想如何與之交互以及你最喜歡什麼。我通常將功能包裝在一個漂亮的HTTP接口中,以便我可以從Python(或任何其他語言)訪問它。幾乎每種語言都有HTTP庫,製作小型REST API非常簡單。一旦它通過HTTP可用,它也允許您使用標準HTTP工具進行調試,緩存和負載平衡。對於可從隊列中受益的較重任務處理,Celery/RabbitMQ功能強大,RabbitMQ可以連接多種語言。 ZeroMQ也可以是一個非常靈活和輕量級的方法。另外,如果您的應用程序的算法強烈部分可以制定爲矢量操作,請檢查NumPy。您可能不必離開Python

+0

第二個非python http接口是否會資源昂貴? – schatten 2011-03-20 12:33:20

+0

取決於您需要它做什麼以及如何構建它。 HTTP本身的開銷很小。你將不得不弄清楚在你的具體情況下哪些折衷是可以接受的。在各部分之間使用網絡協議的好處是,如果原來需要非常耗費資源,那麼您可以在獨立的機器上運行該部分,而不是從其他Web應用程序運行。 – thraxil 2011-03-22 17:54:35

+0

謝謝。幫了很多。 – schatten 2011-03-22 20:59:47

1

您是否嘗試過爲您的C/Java代碼發現/編寫消息/指令隊列處理接口?這樣,您可以將作業從您的web應用程序傳遞到消息/指令隊列,在那裏您的C/Java代碼將拾取消息並對其進行處理。

對於Django,您可以選擇使用類似Celery的東西。

+0

Celery在RabbitMQ上運行,它也有跨多種語言的實現,java,python,c,ruby – 2011-03-13 01:56:29

+0

檢出了芹菜。應該解決我腦海中的問題。謝謝。 – schatten 2011-03-20 12:31:14

0

對於Python說話的C/C++,你可以使用:

Extending Python with C or C++

Boost

在上述2個解決方案的想法是,你會寫在C/C++內存密集型代碼++然後從Python中調用它們。

相關問題