簡體   English   中英

如何持續集成(CI)永遠運行的關鍵Python應用程序?

[英]How to continously integrate (CI) an forever running critical Python application?

我用Python編寫了一個運行24-7的加密交易機器人。 我想通過CI軟件Jenkins將新功能和錯誤修復不斷集成到此應用程序中。 但是問題是我不能僅僅終止該應用程序,簽出最新版本並重新啟動該應用程序。 因為該機器人可能在任何給定時間都有活躍的交易要出售(當前為交易)。 終止該應用將使機器人失去對其訂單的跟蹤。 我當時想將活動的交易數據轉儲到數據庫中,終止該應用程序,對其進行更新,然后重新啟動它,然后從數據庫中加載交易數據以恢復機器人對交易的了解。 但是我不確定這是否是最好的方法。 有一個更好的方法嗎?

總結一下。

  1. 要保存狀態,請考慮使用Redis
  2. 偵聽系統信號以觸發正常關機,如下所示:

     import signal ... def handler_stop_signals(*args, **kwargs): """ Handle system signals only SIGTERM expected to trigger this""" Log.log(__name__).info('Gracefully shutting down') my_process.shutdown() if __name__ == 'main': signal.signal(signal.SIGTERM, handler_stop_signals) 

    不需要不同的過程,cli,api。 注冊一個偵聽器,一旦發出信號,該回調函數就會啟動。 欲了解更多信息,請點擊這里

然后,當您想使用jenkins部署新版本時,只需停止或終止服務,然后部署並啟動即可。

暫無
暫無

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

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