2016-12-21 62 views
1
@app.route("/") 
def start(): 
    #will do some task 
    return 'completed' 

在上述程序中,在執行完第一個請求後,第二個請求將被執行。但是我想製作一個這樣的服務器,它可以在某個特定時間通過使用燒瓶或其他任何東西並行接受,執行和響應多個請求。使用燒瓶並行多請求處理

我該如何做到這一點?

回答

2

對於多請求處理/生產部署,必須使用gunicorn或apache或gevent。

http://flask.pocoo.org/docs/0.11/deploying/

類似的方法遵循其他Python Web框架太像Django的。

+0

可以給我任何例子,可以幫助我通過使用django來檢查paralley處理請求嗎?謝謝 –

+1

@SudipDas Django可以使用Apache mod_wsgi進行部署,如https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi中所述。 我也使用過gunicorn,但是gunicorn沒有提供靜態文件,您需要進一步將其與nginx連接以提供靜態文件。 對於進一步的並行化,可以使用docker swarm和scale服務或使用Elastic Beanstalk並動態擴展。 –

1

您可以使用klein模塊,該模塊一次處理多個請求。

  • 請參考下面的林,這將給解釋清楚 關於FLASK限制。

Comparison between Flask and Klein

闖民宅此鏈接後,我從瓶切換到克萊恩。希望它也能幫助你。

+0

我還需要這一個用於分佈式集羣計算,假設服務器m/c的請求負載高,那麼我想要移位請求另一臺計算機連接到服務器。通常我使用dask.distributed來管理分佈式集羣計算。我可以通過使用klein轉移請求嗎?主要是我要轉移請求是服務器的負載很高。 –

+0

請參閱他們的文檔:https://media.readthedocs.org/pdf/klein/latest/klein.pdf –

+0

對不起,可以給我發送任何可以同時處理多個請求的示例嗎?通過使用本例==>從克萊進口克萊 導入時間 應用程式=克萊恩() DEF testFun(): \t打印( '起始') \t而真: \t \t time.sleep(3) \t \t打印( '循環') \t \t time.sleep(3) \t \t打印( '3秒後') @ app.route( '/',方法= [ 'GET']) DEF square_submit(請求): #x = int(request.args。得到( 'X',[0])[0]) #解析度= X * X \t testFun() \t返回 「已完成」 如果__name__ == 「__main__」: \t app.run(」 localhost「,8888) –