Làm thế nào là cronjobs động được chèn vào cron_schedule


7

Thời gian cho một số tác vụ cron cốt lõi của Magento như sơ đồ trang web, thông báo cảnh báo chứng khoán và làm sạch nhật ký có thể được điều chỉnh thông qua Cấu hình hệ thống của quản trị viên. Điều này có nghĩa là chúng không được định nghĩa bên trong cronjobnút của tệp config.xml của mô-đun, tuy nhiên chúng được ghi vào cron_schedulebảng như các công việc khác.

Làm thế nào để lập lịch cron tìm thấy những công việc? Tôi đoán là có một sự kiện được đưa ra trong quá trình tạo lịch biểu, nhưng tôi không thể thấy bất kỳ trường hợp nào dispatchEventtrong Mage_Cron.

Câu trả lời:


13

Các loại cronjobs này có mô hình phụ trợ được gọi khi cài đặt cron được gọi. Mô hình này chèn thời gian chạy công việc cron vào core_config_datavà lịch cron đọc nó từ đó.
Hãy lấy ví dụ về cron sitemap. Trường 'tần số' có mô hình phụ trợ này (xem app/code/code/Mage/Sitemap/etc/system.xml):

<backend_model>adminhtml/system_config_backend_sitemap_cron</backend_model> 

Khi tần số được lưu (và phần còn lại của các trường với nó) phương thức này được gọi là : Mage_Adminhtml_Model_System_Config_Backend_Sitemap_Cron::_afterSave().
Điều này chèn vào bảng core_config_databiểu thức cron với đường dẫn này crontab/jobs/sitemap_generate/schedule/cron_expr.
Giá trị này được đọc Mage_Cron_Model_Observer::_generateJobsvà thêm vàocron_schedule

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.