我有一個服務,我用Python編寫,允許用戶安排任務以不同的時間間隔進行。的任務的示例將是:間隔時間安排任務的最佳工具?
- 任務A:做每10秒 狀態檢查
- 任務B:做一個狀態檢查爲每3秒
- 任務C:做一個狀態檢查每15秒
任務應該彼此獨立運行。我還想確保Task A
在上次嘗試完成之前不能再次運行。請記住,任務的數量是動態的,因此在他們運行的時間間隔內。
我看過RabbitMQ,但是我很難決定它是否有這種能力。
我有一個服務,我用Python編寫,允許用戶安排任務以不同的時間間隔進行。的任務的示例將是:間隔時間安排任務的最佳工具?
任務應該彼此獨立運行。我還想確保Task A
在上次嘗試完成之前不能再次運行。請記住,任務的數量是動態的,因此在他們運行的時間間隔內。
我看過RabbitMQ,但是我很難決定它是否有這種能力。
我最近一直在使用芹菜來做你想做的事情。通過芹菜,您可以創建任務,這些任務實質上是分配給任務隊列的功能。您還可以定期運行芹菜任務,無論這意味着每x秒還是更多的crontab風格的方法。
在芹菜文檔中查找定期任務,看看它是否適合您正在嘗試做的事情。芹菜使用rabbitmq或redis(主要)。每個任務都在主程序的獨立線程中運行。
您應該設置幾個任務隊列,每個任務隊列一個。然後,當你有一個新的任務要做,就把它放在隊列中。這可以確保它們按照您選擇的時間間隔順序進行,並按順序進行。
考慮Amazon Simple Queue Service (SQS)或Amazon Simple Workflow Service而不是維護您自己的RabbitMQ/Celery實例。