drupal 寫定時任務

2021-06-08 20:18:20 字數 1514 閱讀 9575

首先,不得不承認: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...