簡體   English   中英

動態路由,生產中的龍卷風部署

[英]dynamic routing , tornado deployment in production

我有 4 個 python 龍卷風線程在不同機器的不同端口上運行。 我使用 nginx 來路由和負載平衡。 所有這些代碼都是相同的。 它是一個異步代碼。 我也有一個本地文件,讓我們說每台機器上的 function.py 被 python 線程調用,做一些計算並返回答案。

我的要求是我可能需要定期更新 function.py 文件。 但是,我不希望停止服務器以重新加載該功能,因為我不想刪除任何傳入請求 如果需要,我願意將 nginx 更改為其他內容。 任何建議將不勝感激。 謝謝!

編輯:是否有一種方法可以修改/配置 nginx,使其僅在某些服務器啟動時才會重定向到某些服務器(例如端口 8011-8014)? 在這種情況下,我可以修改主 python 線程,然后正常關閉端口 8011-8014。 但這種配置可行嗎?

更新您的python代碼時,您可以在不同的端口上啟動一組新的python進程(例如8001-8004用於前一組,8011-8014用於新組)然后修改nginx配置以重定向到8011-8014而不是8001-8004並運行service nginx reload (或等效於您的操作系統)。

這樣,nginx 會將新請求重定向到新進程,而不會丟棄任何請求並完成先前進程的待處理請求。 當您知道對舊的 Python 進程集的所有待處理請求都已完成(這可能很重要)時,您可以停止它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM