我想在我的php應用程序中添加一個部分來添加/刪除計劃任務。從PHP內使用cron manager
類似於他們在中使用的東西。vBulletin論壇。
有沒有人有任何想法他們使用?他們使用cron作業還是他們有自定義的工作。
任何人都可以指導我如何完成類似的事情,基本上我只是想讓我的腳本添加或刪除cron作業/計劃任務。
我不想使用,例如cPanel Cron接口,我想從我的腳本中完成此操作。
任何幫助,非常感謝。
我想在我的php應用程序中添加一個部分來添加/刪除計劃任務。從PHP內使用cron manager
類似於他們在中使用的東西。vBulletin論壇。
有沒有人有任何想法他們使用?他們使用cron作業還是他們有自定義的工作。
任何人都可以指導我如何完成類似的事情,基本上我只是想讓我的腳本添加或刪除cron作業/計劃任務。
我不想使用,例如cPanel Cron接口,我想從我的腳本中完成此操作。
任何幫助,非常感謝。
如果您沒有啓用exec()
功能,則必須依靠手動設置至少一個通過某個界面的cron作業,然後管理腳本中的各個作業。
我的例子做的是
crontab
並檢查是否有任何行(工作)與time_to_process <= NOW()
heartbeat.php
crontab
加載爲特定行定義的類run()
方法實現接口,我只能調用$cronJob->run()
,使其運行crontab
表補賽一旦它完成一個很好的例子是重置一些項目每天的意見。該作業定於2010年5月1日00:00。作業一旦運行,它會自動安排到第二天。
然後,您可以實現失敗作業的自動重置以及PHP中的許多其他功能。
http://ryanfaerman.com/php-crontab-manager/
是一個PHP類,可以讓你使用一個類從PHP訪問的crontab。
作爲鏈接的帖子裏說,cron的行爲可能會有所不同,從機器到機器。如果您的php腳本以用戶「apache」運行,那麼您必須確保允許用戶使用crontab,這涉及到查找cron.deny和cron.allow文件。 'man crontab'(如果你有shell的話)可以告訴你在哪裏可以找到這些文件以及它們是如何被解釋的......如果你打算在未知的環境中打包你的代碼以部署,你可能想'假冒它',就像進化的答案一樣。 – grossvogel 2010-05-12 14:43:22
@grossvogel我使用了這個庫php-corntab-manager但是我收到了內部服務器錯誤,是否有任何其他方式可以從php腳本中調用啓動或停止cron作業 – Hunt 2012-07-02 19:54:43
@CodeJoust,代碼的來源給404頁。 – Pacerier 2015-02-03 16:08:27
我相信vBulletin「假貨」cron工作。任何訪問頁面的用戶都會執行代碼來檢查是否需要運行任何任務。
但是,如果沒有用戶訪問該網站,則不會執行任何cron作業,該方法100%依賴於頁面查看。
此外,爲了防止執行cron作業的用戶延遲頁面呈現,他們在頁面呈現後執行。
再一次,這正是我所想的正在發生,我沒有看過自己的代碼。
希望這會有所幫助。
如果它是100%依賴頁面瀏覽量,你總是可以安排一個cronjob每分鐘訪問該網站..... – Pacerier 2015-02-03 16:09:58
下面是一個PHP的crontab類:
http://www.kavoir.com/2011/10/php-crontab-class-to-add-and-remove-cron-jobs.html
使用的方法來添加,編輯或刪除cron作業。
這裏是我的解決方案:-)命令行
樣品:
bin/cronman --enable /var/www/myproject/.cronfile --user www-data
點擊查看更多:php-crontab-manager
也被稱爲'窮人的克朗'。 – CodeJoust 2010-05-12 18:41:44
非常感謝:)這幾乎是我所需要的,雖然我不想觸摸cron的cPanel界面,但我認爲最好的解決方案是做類似於你所說的東西;但是不要手動創建一個cron,而應該在用戶執行頁面請求時,從網站頁面中調用該cron-manger腳本。 我想我現在確信vBulletin不會使用cron的 - 因爲他們將不得不依賴exec(),它也被禁用在我的主機上,但vbulletin仍然可以使用這些調度程序的全部功能。 – Zubair1 2010-05-14 16:48:36