[英]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.