2012-07-21 84 views
0

我有一個腳本,從Web服務拉出一些數據,並填充MySQL數據庫。這個想法是每分鐘運行一次,所以我添加了一個cron作業來執行腳本。Crontab工作作爲服務

但是,我希望能夠偶爾掛起並重新啓動作業而不修改我的crontab。

實現此目標的最佳做法是什麼?或者我應該不是真的在使用crontab來安排我想偶爾暫停的事情?

我正在考慮一個全局變量被設置並在腳本內進行檢查的實現。但我認爲我會先找到更適合的解決方案。越簡單越好 - 我對腳本和ruby都很陌生。

回答

1

如果我是你,我的腳本會查看一個靜態開關,就像你用全局變量所說的那樣,但是測試一個文件存在而不是全局變量。這對我來說似乎很乾淨。

另一種解決方案是讓服務不使用crontab,而是每分鐘調用一次腳本。該服務將像/etc/init.d或其它服務(/etc/rc.d根據你的系統),並有startstoprestart命令其他服務。

這些2種溶液可以混合:

  1. 服務僅創建或刪除切換文件,並在crontab線始終有效。
  2. 或者您的服務直接編輯crontab,如this,但 我不希望通過腳本編輯crontab,文中描述的技術不是原子的(如果您通過腳本更改閱讀和寫入之間的crontab,改變丟失)。

因此,在你的地方,我會去的1

+0

謝謝,這會爲現在做的很好。 – 2012-07-22 15:14:20