一千萬個為什麽

搜索

有沒有理由不使用Bamboo來運行重復的任務而不是cron?



是否有理由使用Bamboo(或Jenkins)執行計劃任務(比如說每15分鐘)而不是使用cron作業是一個錯誤的決定?

轉載註明原文: 有沒有理由不使用Bamboo來運行重復的任務而不是cron?

一共有 2 個回答:

使用Bamboo或 Airflow 等任務調度程序比cron有很多優勢,特別是在識別能力方面因此,錯誤和過程相關的任務。到目前為止,不使用它們的最常見原因是你還沒有設置基礎設施:在每臺Linux機器上都安裝了某種形式的cron,並且很容易添加新的作業,而這些更高級的調度程序需要設置機器隊,安裝和配置各種軟件,以及學習如何編寫新任務。

假設你已經有了這個,那麽有一些cron處理得更好的用例:

  1. Running a job on a specific machine. You can do this with other schedulers, but they're generally designed for tasks that can be run on any one of a set of machines; when you want to do something like run a log rotation on every server in your fleet, that's much easier to set up with cron.
  2. Running time-sensitive tasks at exact times. Distributed schedulers will schedule a job to run, but it may not actually run for some period of time, depending on what else is in the queue. Cron doesn't have a queue, and so a task that needs to run every minute will run every minute (or at least as close to that as the OS scheduler will allow).

使用cron而不是jenkins的可能原因

我假設你在Linux系統上意味著cron而不是Kubernetes CronJob控制器( https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

1)用戶權限。雖然您可以使用Jenkins解決這個問題,但在cron中作為仲裁用戶運行命令可能更容易

2)提供命令。您可能希望能夠使用cron類型使用Puppet設置命令。同樣,我確信Jenkins可以這種方式配置,但在某些情況下配置cron可能更容易

3)輕量級。所有Linux/Unix主機都將cron作為始終可用的基本服務運行。而Jenkins需要安裝和運行額外的非標準物品