十二月 18, 2015 | 伺服器和Devops

Drupal 運用Crontab 來trigger Elysia Cron

drupal常常會在背後執行cron,執行cron卻常常造成系統的loading,如果可以讓cron在某個特定時間執行,或是每特定時間執行,想必會有能改善吧?來看看如何用Elysia Cron將不同的cron執行時間拆分開來解決這個問題

前言

其實drupal在背後常常會在執行cron,可是執行cron的時候常常會造成系統的loading,這個時候如果我們可以讓cron在某個特定時間執行,或是每特定時間執行,想必會有一定的改善,所以用Elysia Cron我們就可以將不同的cron執行時間拆分開來解決這個問題 首先我們先安裝Elysia Cron這個模組之後在設定/系統/cron settings

選擇設定頁籤

CLICK FOR HELP AND CRON RULES AND SCRIPT SYNTAX 可以先看一下設定時間的範例

SINGLE JOB SETTINGS 就是我們設定rules的地方

像我們這邊就設定 ctools_cron每分鐘執行一次之後儲存設定,等阿等怎麼就是不會執行呢 原來是drupal沒辦法幫我們分別執行cron所以必須要靠伺服器來幫我們trigger 這個時候要注意 Run cron on visitor's requests, every要設定Never

接下來就是去設定伺服器了 以ubuntu為例 下指令

像這邊我們就設定每一分鐘 使用curl來觸發執行cron的網址 ">/dev/null 2>&1"這段是來忽略輸出log檔的否則/root資料夾底下會有一堆空的log檔

cron_key在你的報告/狀態報告可看到執行cron的網址

只要設定好之後伺服器就會幫我們每一分鐘去執行cron,elysia cron會在幫我們檢查時間是否到了

以上就是一些簡單的教學  

參考資料:

  1. http://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job
  2. http://superuser.com/questions/71428/what-does-21-do-in-command-line
hashtags: