簡體   English   中英

設置cron job php

[英]Set cron job php

我如何以編程方式設置cron作業,

我們為我們的項目安裝了一個安裝程序,在安裝時我需要用PHP編寫一個cron作業。

請注意,該項目可以在LINUX / WINDOWS上運行,

我怎么能實現這一目標? 還是有比CRON JOB更好的選擇。

我正在使用Codeigniter(總是歡迎使用基於本機PHP的解決方案,但如果通過CI則會非常有用)

cron工作包括

  1. 檢查特定表並刪除無效數據
  2. 從mailServer向DB插入值
  3. 檢查某些文件的可用性。

謝謝。

這是一篇很好的文章,用於從PHP管理您的Cron作業

http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/

此示例包含如何從PHP編寫Cron作業的完整描述,該作業可從具有完整源代碼的界面進行管理。

Cron是linux的作業調度程序。 它不適用於Windows(除非你開始喜歡Cygwin和etecetera)。 如果您必須在系統范圍內支持它,跨越各種未知系統以及PHP中的所有系統(無法按原樣安排工作),您可以使用這三種使用的解決方案中的任何一種:

來自地面控制的電話
(最好的資源,具體時間,最優雅的解決方案)

  1. 讓你自己的盒子運行cron和ssh'ing其他機器來運行命令
  2. 讓你自己的盒子運行cron並訪問“secret url”的 ro run命令
  3. 有一個外部服務,如SetCronJob稱你的“秘密網址”

隨機工作跑步者
(最容易實施,資源適中)

如果您需要做一些不會直接影響用戶在您網站上的行為方式並且不是時間敏感的事情(只需要完成),您可以采用統計概率運行。

// this will run on average once every 100 page views
if(rand(1, 100)==1) runJobQueue();

最壞的情況是
(資源更難)

如果您的工作必須經常完成,因為它會直接影響用戶,並且必須滿足一些時間表,您可以保存查詢並使用上次運行時間戳更新數據庫並繼續檢查以查看作業是否必須重新跑

// if has passed 1 hour since last update... re-update it
$result = mysql_query("SELECT `timestamp` FROM job_times WHERE whatever...")
if(mysql_result($result, 2) >= ( now() - 3600)) {
    runJobQueue()

cron job可用於linux,windows中的替代方案是schedule任務。 http://support.microsoft.com/kb/308569

暫無
暫無

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

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