我的應用程序的用戶需要能夠安排某些任務在特定時間運行(例如一次,每一分鐘,一小時等)。我的計劃是讓cron每分鐘運行一次腳本來檢查應用程序,看它是否有要執行的任務。如果是這樣,那麼執行這些任務。LAMP:如何實施計劃?
問題:
- 是的cron的運行每分鐘一個好主意?
- 我該如何在數據庫間隔內建模像cron那樣(例如每分鐘,每小時的第5分鐘等)?
我正在使用LAMP。
我的應用程序的用戶需要能夠安排某些任務在特定時間運行(例如一次,每一分鐘,一小時等)。我的計劃是讓cron每分鐘運行一次腳本來檢查應用程序,看它是否有要執行的任務。如果是這樣,那麼執行這些任務。LAMP:如何實施計劃?
問題:
我正在使用LAMP。
或者,而不是做任何事,你知道,真正的工作,只需爲用戶創建一個接口,然後在cron中發佈條目!不要讓cron每時每刻都給你打電話,讓它根據用戶的指示調用腳本。當他們添加或更改作業時,請重新編寫crontab。
沒什麼大不了的。
在unix中,cron允許每個用戶(即是unix登錄)都擁有自己的crontab,因此您可以讓一個專用於您的應用程序,而不必爲此使用root crontab。
我想這是可能的。這意味着每個賬戶用戶需要有一個關聯的unix用戶。這可能有點複雜? – StackOverflowNewbie
不,我的觀點只是你有一個與你的應用程序相關的用戶,並使用該crontab--沒有理由讓每個應用程序用戶都有一個unix用戶。 –
我認爲這個想法可能是可行的。我會再考慮一下。你做過這樣的事嗎? – StackOverflowNewbie
您的意思是說,您有一系列用戶定義的作業需要在用戶定義的時間間隔內執行,並且您希望讓cron幫助處理這些作業?如果是這樣的話,您希望擁有一個至少有2個字段的數據庫: JOB, OFTEN
其中OFTEN是他們希望使用類似於CRON的語法運行的頻率。
然後你需要編寫一個腳本(用python,ruby或者其他類似的語言)來解析這些數據。這個腳本將通過你的實際cron運行每1分鐘。
看看this StackOverflow question和this StackOverflow question,關於如何通過python解析crontab數據。
我不知道你是否在使用Java,但你可以看看Quartz Scheduler。 http://www.quartz-scheduler.org/ –
這也可能對審查很有用(向下滾動到示例):http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html –
@Jaren - 我正在使用PHP。 – StackOverflowNewbie