三月 12, 2016 | 後端和Drupal
那些Drupal強者都愛用的排程模組,別說你都沒聽過Elysia Cron
前言
程式開發時,自動化是一項非常重要的主題(心聲:程式當然就要會自動化啊),普通的工程師可能一段程式每次要處理時,都需要手動Trigger這一段程式碼,才能夠執行。而厲害的工程師,則是寫完程式之後,通過排程的方式,讓系統時間到了之後自動執行程式。Drupal本身內建的Cron已經可以讓普通的工程師晉升為厲害的工程師了,而然距離傳說中的超強工程師,還有一段差距,原因是超強工程師不僅能夠排程,還能夠將所有需要自動化程式分門別類,進行複雜的交叉排程作業。如果今天的你,想要成為一位「超級強」的工程師,非看這篇文章不可。
現行Cron排程的使用
如果你已經會使用Drupal的Cron模組,一定會覺得自動化並不困難,只需要設定好以下兩點:
- 設定時間執行Cron排程的時間間隔。
- 檢查狀態報告,得知最近一次執行時間。
在這樣的狀態下,您的Drupal系統已經可以進行每日的自動化作業了,而Drupal的Cron作業裡面包含的作業如:執行更新檢查、執行系統刪除暫存檔作業、搜尋模組進行文章index作業...非常多的功能,目的都是為了讓系統更方便,不需用進行其他人為的操作即可完成。若您的自動化需求並不多,只是需要做些系統內建簡單的排程作業,則Drupal內建的Cron模組即可完成。
系統可以「自動」做更多事情嗎?
如果現在您的網站是一個功能多元且複雜的網站,您可能開始需要系統能夠自動處理更多的任務。舉例來說,如果您有電子報系統,也許您需要每隔3分鐘寄送一次的Email,又也許您的網站需要從外面定時擷取新聞,可能10分鐘一次。再加上,如果您需要系統定時發佈文章,那麼您的系統則需要每分每秒來檢測現在是否到達了發文時間了。在工作不單一的情況下,原生的Drupal Cron已經供不應求。因此在這樣的情況下,我們會需要一個定時且能夠分工的Cron功能,這個時候Elysia Cron就是為了解決這樣的問題。
超強排程模組Elysia Cron
這個模組其實就是更強化了Drupal的核心Cron模組,並且可以跟伺服器整合,達到您任何想要達到的自動化需求。而接下來,就讓小編開始介紹這個神奇的模組吧。
主要特點
- 將Cron Task分別處理,或建立Task分類集合。
在本來的內建Cron裡面,Drupal只能夠一次執行全部的任務,而Elysia Cron一個很強大的功能不僅能夠個別執行每一個Cron Job,而且能夠將想要一起執行的Cron Job進行分類集合 針對Task進行頻率或時間設定,將很厚重的任務均分到更短時間來執行吧。
在這個模組中,您可以選在"頻率"來排程或者“時段”來排程,例如您可能想要5min執行一次,或著想要星期一到星期五半夜02:00-04:00,都是很輕鬆可以辦到的,另外此模組還提供了權限,讓我們調整,讓系統決定同時執行任務時的先後順序。可以直接選擇系統提供的區間,也可以考慮以下自訂時間規則的寫法: */15 * * * * : 每15分鐘執行一次 0 2,14 * * *: 在每天的02:00~14:00執行任務 0 2 * * 1-5: 每週一到週五凌晨兩點執行 0 12 1 */2 1: 每兩個月執行一次,並且在每個月第一天的12:00分執行
Multi-Task多工,並且提供統計結果
除了可以根據Task進行不同頻率與時間外,每個Task或分類集合Task,彼此可以不互相影響,讓系統根據各自的時間區隔,同樣進行不同的自動化任務,對於有多重自動化需求的工程師來說,實在是太讓人興奮了。更重要的是,模組提供了統計功能,我們可以得知每個任務的loading,來做進一步調整 :)- 針對Task進行權重區分
如果當系統,真的遇到同時有很多任務必須要同時執行的時候,權重就是非常重要的一個選擇,孰先孰後,影響到相對時間內,哪些任務優先處理完畢。 - 提供API串接如果您是一個Drupal的工程師,這個功能對您來說實在是太重要了,只需要按照官網所寫,即可撰寫自己的Cron API前往官方網站查看api,至於怎麼寫,這裏就不詳述了。
- 提供選擇把不需要執行的Cron任務關閉。
- 跟伺服器整合,並且自行定義自己的cronkey。
通過設定伺服器的crontab,來Trigger網站的Cron。如果您不熟悉CronTab,可以參考這篇文章CronTab教學,完美整合網站的自動化排程。
“說到這裏,應該有心動要安裝吧,快點動手下載並且安裝”
drush en elysia_cron -y
結論
從本來只有核心Cron的情況下,通過Elysia Cron將網站的整合與功能性大幅度的提高,也可以善用伺服器的資源,讓網站可以在半夜或特定時段執行特定任務,也同樣通過這個模組,可以分攤原本需要一起執行的Cron Job,對於大型網站來說,真的是個救星。Enjoy!也歡迎大家一起討論。