設定cron作業
有幾個Commerce功能至少需要一個cron工作,這會安排未來發生的活動。 這些活動的部分清單如下:
- 目錄價格規則
- 電子報
- 產生Google Sitemap
- 客戶警示/通知(產品價格變更、產品補貨)
- 重新索引
- 私人銷售(僅限Adobe Commerce)
- 自動更新貨幣匯率
- 所有商務電子郵件(包括訂單確認和異動)
dev/tools/cron.sh
因為指令碼已移除。UNIX系統使用 crontab,此檔案包含對cron精靈的指示,指示精靈在「這個日期這個時間執行此命令」。 每個使用者都有自己的crontab,而且任何指定crontab中的命令都會以擁有該命令的使用者身分執行。
若要在網頁瀏覽器中執行cron,請參閱 保護cron.php在瀏覽器中執行.
建立或移除Commerce crontab
本節將討論如何建立或移除您的Commerce crontab (即Commerce cron作業的設定)。
此 crontab 是用於執行cron作業的設定。
Commerce應用程式使用能以不同設定執行的cron工作。 PHP命令列配置控制一般cron工作,該工作會重新索引索引器、產生電子郵件、產生Sitemap等等。
- 為避免在安裝和升級期間發生問題,我們強烈建議您將相同的PHP設定套用到PHP命令列配置和PHP Web伺服器外掛程式的配置。 如需詳細資訊,請參閱 必要的PHP設定.
- 在多節點系統中,crontab只能在一個節點上執行。 唯有因效能或擴充性相關原因而設定多個Webnode時,才能使用此功能。
建立Commerce crontab
從2.2版開始,Commerce會為您建立crontab。 我們會將Commerce crontab新增至Commerce檔案系統擁有者的任何已設定crontab。 換言之,如果您已針對其他擴充功能或應用程式設定crontab,我們會將Commerce crontab新增至該擴充功能或應用程式。
商務crontab在裡面 #~ MAGENTO START
和 #~ MAGENTO END
在您的crontab中評論。
若要建立Commerce crontab:
-
登入為,或切換至 檔案系統擁有者.
-
變更至Commerce安裝目錄。
-
輸入下列命令:
code language-bash bin/magento cron:install [--force]
使用 --force
重寫現有的crontab。
magento cron:install
不會重寫內部的現有crontab#~ MAGENTO START
和#~ MAGENTO END
在您的crontab中評論。magento cron:install --force
對Commerce評論以外的任何cron工作沒有影響。
若要檢視crontab,請輸入下列命令作為檔案系統擁有者:
crontab -l
範例如下:
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
update/cron.php
檔案已在Commerce 2.4.0中移除,若此檔案存在於您的安裝中,則可安全地移除它。update/cron.php
和 bin/magento setup:cron:run
應該也會從crontab中移除'移除Commerce crontab
您必須先移除Commerce crontab,才能解除安裝Commerce應用程式。
若要移除Commerce crontab:
-
登入身份或切換至 檔案系統擁有者.
-
變更至Commerce安裝目錄。
-
輸入下列命令:
code language-bash bin/magento cron:remove
#~ MAGENTO START
和 #~ MAGENTO END
在您的crontab中評論。從命令列執行cron
命令選項:
bin/magento cron:run [--group="<cron group name>"]
位置 --group
指定要執行的cron群組(省略此選項即可對所有群組執行cron)
若要執行索引cron工作,請輸入:
bin/magento cron:run --group index
若要執行預設cron工作,請輸入:
bin/magento cron:run --group default
若要設定自訂cron作業和群組,請參閱 設定自訂cron作業和cron群組.
scheduled_at
每項工作的時間。記錄
全部 cron
工作資訊已移出 system.log
放入單獨的 cron.log
.
依預設,cron資訊可在以下網址找到: <install_directory>/var/log/cron.log
.
cron工作的所有例外狀況記錄者 \Magento\Cron\Observer\ProcessCronQueueObserver::execute
.
除了登入 cron.log
:
-
失敗的工作,具有
ERROR
和MISSED
狀態會記錄至<install_directory>/var/log/support_report.log
. -
具有的工作
ERROR
狀態一律記錄為CRITICAL
在<install_directory>/var/log/exception.log
. -
具有的工作
MISSED
狀態記錄為INFO
在<install_directory>/var/log/debug.log
目錄(僅限開發人員模式)。
cron_schedule
Commerce資料庫中的表格。 此表格提供cron工作的歷史記錄,包括:- 工作ID和代碼
- 狀態
- 建立日期
- 排定日期
- 執行日期
- 完成日期
SELECT * from cron_schedule;
.