drupal 寫定時任務

    首先,不得不承認: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如下:
    *  *  *  *  *  /usr/bin/curl http://example/admin/reports/status/run-cron
    “admin/reports/status/run-cron“ 是我在管理員登錄狀態下,查找到的路徑
    不運行
    我到google裏搜關鍵字: drupal cron
    發現是要運行drupal的cron.php文件
    於是修改如下:
    *  *  *  *  *  /usr/bin/curl http://example/cron.php
    運行啦
    但是我總是覺得寫鏈接不是很好,於是修改如下:
     *  *  *  *  *  /usr/local/bin/php /home/example_path/cron.php
    不運行
    我就鬱悶了,怎麼回事 ,我事後想了下,可能是php安裝路徑寫錯了
    繼續修改如下:
     *  *  *  *  *  php -f /home/example_path/cron.php
    運行啦
 
    一路走下來,真是不容易啊~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章