2014-09-24 43 views

回答

1

如果考慮cron是「單向」要做到這一點,然後是的,有無數的「其他方式」。這是因爲所有這些方式基本上都會做同樣的事情......調度任務以定期運行。

不要以爲cron或任何其他調度工具,應用程序的一部分。將「執行任務」的擔憂與「調度任務」的擔憂分開。一旦你有一個執行任務的應用程序(如果在這種情況下任務只是遞增一些持久值,那麼整個應用程序將會非常小),那麼你就可以分別使用一個調度系統來調度任務。

cron可以做到這一點。所以可以無數其他人。您甚至可以編寫自己的調度程序作爲某種守護程序或後臺服務運行(術語取決於平臺,調度程序的平臺差異是保持關注點分離的關鍵原因)。

+0

爲什麼你會認爲它們是分開的(你的cron和你的應用程序)?沒有cron,您的業務規則可能無法滿足。沒有它,你就無法進行工作部署。 – ashes999 2014-09-24 16:16:33

+0

@ ashes999:因爲執行邏輯和調度邏輯是兩個不同的問題。對於初學者來說,如果你將應用程序與特定的調度程序實現緊密結合,那麼你就不能在沒有調度程序的情況下調用應用程序邏輯。這使得業務邏輯更加僵化,便攜性降低,而且可測試性也更低。 'cron'或任何調度程序是一個實現細節。這不是業務規則的一部分。計劃任務的*定義*可能是業務規則(例如「隔日」),但這些規則的*實現*與此不同。 – David 2014-09-24 16:19:10

1

此外,您可以使用任何在軌道上使用紅寶石的後臺工作人員。例如sidekiqrescue。兩者都有插件與週期任務

sidekiq工作:sidetiq - 絕佳選擇。它具有完美的界面,集成在標準的sidekiq監控工具中。我在我的所有項目中都使用它。

resque:resque-scheduler - 幾年前我用過這個調度器。我所知道的全部工作都很好。

+0

thx!也許我可以嘗試一些積極的工作!大聲笑 – Snowmanzzz 2014-09-25 00:45:02

相關問題