首先,不得不承認:drupal是乙個獨特的框架,我對於裡面有太多的東西都不了解。這次寫cron,花了我整整一天的時間。寫下我的過程,以防止下次再出現同樣的錯誤~
drupal的cron,也許和大多數的php定時任務是相同的,也許不同。我也說不出特定的什麼來~值得強調的是:drupa對於hook的運用,幾乎發揮到了極致,只要是drupal,都不能夠拋開這乙個去思考問題~
同樣的,對於cron,本質上也是呼叫hook_cron。
促使我去寫cron的原因是:我安裝了event,signup模組,用來建立和註冊活動。測試的時候,我發現了乙個問題,即:當乙個使用者註冊事件之後,會傳送一封「confirmed email」給註冊的使用者,我同樣設定了在活動開始的前一天,給使用者傳送一封「reminder email」。但是我發現,系統並不會給使用者傳送這樣的一封提醒郵件。於是查詢原因,我發現,當**「run cron」的時候,使用者會收到郵件。
我問我同事,同事告訴我,讓系統一直執行cron,是不對的。但是我又找不到其他可以讓系統傳送提醒郵件的辦法。於是想,我只執行提醒郵件的cron。
我找到寫提醒郵件的方法的php檔案,即sites/all/modules/third/signup/includes/cron.inc檔案。
於是我寫cron如下:
* * * * * php -f /home/example_path/sites/all/modules/third/signup/includes/cron.inc
不執行我查了網上的一些資料,有的人,寫的形式如下:
* * * * * /usr/local/bin/php /home/example_path/sites/all/modules/third/signup/includes/cron.inc
即:把php -f 修改為/usr/local/bin/php ,這裡「/usr/local/bin」是php環境的安裝路徑
不執行我記得上次和乙個同事,寫cron的時候,也不執行,於是,謝了url鏈結,去執行cron
我繼續寫了cron如下:
「admin/reports/status/run-cron「 是我在管理員登入狀態下,查詢到的路徑
不執行我到google裡搜關鍵字: drupal cron
發現是要執行drupal的cron.php檔案
於是修改如下:
執行啦* * * * * /usr/local/bin/php /home/example_path/cron.php
不執行我就鬱悶了,怎麼回事 ,我事後想了下,可能是php安裝路徑寫錯了
繼續修改如下:
* * * * * php -f /home/example_path/cron.php
執行啦一路走下來,真是不容易啊~
使用 node schedule 寫定時任務
為了協助後端同事mock資料,向他的伺服器定時傳送請求,原本想用setinterval去寫,但想到可以使用定時任務,也可以學習下如何使用,所以決定用node schedule 來定時向他的伺服器傳送資料.實現如下 const crontime 2 每2s執行一次 const requesturl c...
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
C 中的寫定時任務
寫定時任務的要注意 自動掉用 我們在vs的global.asax中寫我們要執行的定時任務 這個檔案是在跟目錄下的 我們一般不會刪除此檔案。具體怎麼使用看下面的 定時任務 system.timers.timer timero new system.timers.timer timero.elapsed...