簡體   English   中英

我們可以通過PHP腳本配置cron作業的時間間隔嗎?

[英]Can we configure cron job's time interval through PHP script?

我們是否可以通過PHP腳本配置cron作業的時間間隔,以使該時間間隔不應該手動設置,而是通過PHP腳本設置,無論它是來自數據庫還是固定(但來自PHP代碼)都需要時間間隔。
提前致謝

我認為讓您的應用程序控制事件的頻率而不是cronjob更好。 讓cronjob每分鍾運行您的應用程序的特定操作。 然后,該操作例如檢查名為cronjobs的數據庫表,並運行按頻率編號或時間戳標記為正在運行的作業。

如果這樣做,您可以從任何地方以編程方式添加新作業,例如通過cronjob界面。 該解決方案更易於維護,測試和記錄

有兩種方法。 要么在所需值的每次更改上重新創建crontab,要么定期(例如每分鍾)啟動cron作業,然后從腳本中測試啟動條件。

如果有足夠的服務器特權,則應該能夠通過使用System ()從PHP腳本進行系統級調用來實現。

最好的方法可能是編寫一個能夠創建crontab -file的PHP腳本(並以足夠的權限運行腳本來執行此操作)。

這個站點提供了一個很好的教程。

但是,對cron依賴將使您的代碼依賴於支持cron平台。 因此,另一個解決方案是在PHP本身中實現timed-execution-logic(即,執行代碼,然后自己檢查時間)。

您可以通過創建一個Scheduler來組合上面的兩個解決方案,該接口可以提供一個腳本,並且可以確保在適當的時間執行該腳本。 這樣,您可以在Linux上使用cron來實現它,但是在Windows上以另一種方式來實現:

interface Scheduler {
  function schedule($script);
}
class CronScheduler {
  function schedule($script) {
    append_cronjob($script);
  }
}

雖然,我可能在這里過分了。

如果要執行此操作,建議您改用Message Queue Beanstalkd 它可以以編程方式執行延遲放置,並且速度非常快。 我建議您使用pheanstalk交談Beanstalkd。

暫無
暫無

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

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