Drupal 7 大不同:內置自動執行 CRON

在 Drupal 當中,一些見常功能如搜尋索引、處理 Watchdog 記錄或是檢查更新內容都是要透過 CRON 執行。

Drupal 7 內置自動執行 CRON

不幸的是,遇上一個伺服機並沒有 CRON 功能提供,即使是有也不會設定就是了。為了解決這問題,在 Drupal 6 中我們都使用 Poormanscron,簡單易用,使 Drupal 內部功能保持正常運作。很明顯 Drupal 社區意識到 CRON 對 Drupal 的重要性,Drupal 7 中這將是一個內置的核心功能。

設定位置:admin/config/system/site-information

快慢頻率由你,怎然之不是 Never 就行了。

Drupal 7 CRON 更安全

Drupal 6 以前版本的 cron 都是任由執行,並不用什麼特定帳戶。現在終於解決了這個問題,不再讓人任由魚肉囉!以後在外部執行 cron,緊記需要不同的 URL。

透過外部工具執行 Drupal CRON

Drupal 7 內置 CRON 是當有人瀏覽網站時,才會觸發,如果架設的是定期發送 EMAIL 這類網站,就無法達到目的。

Linux CRON 設定

  1. 開啟 『crontab -e』
  2. 輸入 
  3. 45 * * * * /usr/bin/wget -O -q -t 1 http://www.example.com/cron.php?cron_key=XXXXXXX > /dev/null

    意思是在每小時的 45 分執行。更詳細解釋可看烏哥 CRON 教學

其他有用資源

6 個回應主題: Drupal 7 大不同:內置自動執行 CRON

#1

您好:
请问:如果在windows下使用apahce\php\mysql套件时,其是否有cron功能?我记得cron 只在linux下才有此功能。如果windows下,想使用cron功能,又如何处理呢?

谢谢答复。
秦汉唐 谨上

#2

Windows 都內置排程工具,可以搜索看看如何設置:
http://bit.ly/dxXtNb

你可以用 IE / Firefox 來執行,但兩者執行後不會自動離開,所以建議下載 Windows 版的 wget 工具:
http://users.ugent.be/~bpuype/wget/

wget 相關參數像上文所提的一樣,透過命令行,大約是這樣:

schtasks /create /sc hourly /st 00:05:00 /tn "Drupal Cron" /tr c:\wget.exe -q -O NUL http://www.example.com/cron.php

剛找到這裏有很多實例:
http://www.vvcha.cn/c.aspx?id=31141

#3

非常感谢您的解答,可是由于俺比较笨,再问一个简单的问题。
TWAMP 麻瓜架站包 和 XAMPP-Drupal 等程式包,在windows下运行时,是否已经解决了cron的问题?也就是问:是否不需要我额外控制,drupal和XAMPP等已经自动处理好了?

#4

架站包大多只是提供必須的服務器功能,Drupal 的設定要自己做。像是 TWAMP,只是 Apache/Mysql/PHP 的安裝包,外加包含了 Drupal 而已,跟你下載任何一個安裝包,自己下載 Drupal 沒有大差別。
任何與 Drupal 相關的問題,都需要自己解決 ^_^

#5

您好:想詢問如果是用win的排程來跑corn job的話是不是也可行呢?
然後像如果網站有提供訂閱功能或寄信功能的話是不是corn最好的時間間距是怎樣設定比較好呢~~

謝謝

#6

對於如何設定 Windows Cron,請看看上面的回應。(自己 Google Google) 訂閱或任何寄信功能,都靠 CRON 定期發放是最好的,時間間隔就看你自己需求及伺服器性能了。 伺服器很閑置的話,分分鐘都可以執行

寫下您的回覆

電子郵件不會公開