ปลอดภัยแค่ไหนที่จะทำงาน magento cron.php cron ทุกนาที?


11

เกี่ยวกับ Magento 1.9

ฉันต้องการเรียกใช้ cron.php ของ Magento ทุกนาทีเพราะฉันต้องการให้ส่งอีเมลการขายได้เร็วที่สุดตามคำสั่งของลูกค้า ดังนั้นนอกเหนือจากฟังก์ชั่นอีเมลที่ใครบางคนสามารถบอกให้ฉันรู้ว่า cron.php เริ่มต้นทำอะไรในแง่ที่ว่ามันฉลาดแค่ไหนที่จะรันมันทุกนาทีและถ้าเรารันทุกนาทีสิ่งที่ต้องระวังก่อน 1 นาทีกลายเป็นปัญหาสำหรับ งานเหล่านี้

คำตอบ:


8

ปลอดภัยอย่างสมบูรณ์ - และในกรณีส่วนใหญ่จำเป็นต้องใช้มิฉะนั้นงานอาจถูกข้ามได้

เพียงให้แน่ใจว่าคุณกำลังดำเนินการcron.shไม่ได้cron.php

เพิ่งทราบว่าความสม่ำเสมอของ cron นั้นจะไม่บอกเมื่อมีการดำเนินการ cron - โมดูลเองก็ทำเช่นนั้น

เช่น. ใช้MageRun ที่ยอดเยี่ยมเพื่อแสดงรายการงาน

[www-data@acc1 .microcloud ~]
[~]$ mr_examplecom sys:cron:list


  Cronjob List


+-----------------------------------------+------+----+----+----+----+
| Job                                     | m    | h  | D  | M  | WD |
+-----------------------------------------+------+----+----+----+----+
| aggregate_sales_report_bestsellers_data | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_coupons_data     | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_invoiced_data    | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_order_data       | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_refunded_data    | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_shipment_data    | 0    | 0  | *  | *  | *  |
| aggregate_sales_report_tax_data         | 0    | 0  | *  | *  | *  |
| captcha_delete_expired_images           | */10 | *  | *  | *  | *  |
| captcha_delete_old_attempts             | */30 | *  | *  | *  | *  |
| catalog_product_alert                   |      |    |    |    |    |
| catalog_product_index_price_reindex_all | 0    | 2  | *  | *  | *  |
| catalogrule_apply_all                   | 0    | 1  | *  | *  | *  |
| core_clean_cache                        | 30   | 2  | *  | *  | *  |
| currency_rates_update                   |      |    |    |    |    |
| log_clean                               |      |    |    |    |    |
| newsletter_send_all                     | */5  | *  | *  | *  | *  |
| paypal_fetch_settlement_reports         |      |    |    |    |    |
| persistent_clear_expired                | 0    | 0  | *  | *  | *  |
| sales_clean_quotes                      | 0    | 0  | *  | *  | *  |
| sitemap_generate                        |      |    |    |    |    |
| system_backup                           |      |    |    |    |    |
| xmlconnect_notification_send_all        | */5  | *  | *  | *  | *  |
+-----------------------------------------+------+----+----+----+----+

คุณจะเห็นได้ว่าในบรรดางานที่พบบ่อยที่สุดในรายการนี้คือทุกๆ 5 นาที ซึ่งหมายความว่าแม้ว่า cron จะถูกกำหนดค่าให้ทำงานทุกนาทีมันจะไม่สร้างความแตกต่างเพราะnewsletter_send_allและxmlconnect_notification_send_allจะทำงานทุก 5 นาทีเท่านั้น


หาก CLI ไม่ใช่กระเป๋าของคุณคุณสามารถใช้ ( Aoe Scheduler ) ที่ยอดเยี่ยมเท่า ๆ กันเพื่อแสดงไทม์ไลน์

สิ่งนี้จะช่วยให้คุณเห็นว่าเมื่อใดที่งานต้องทำงานและหากพวกเขากำลังดำเนินการหรือข้ามไป


ทำไม cron.sh มากกว่า cron.php
Navarr

cron.sh ทำให้แน่ใจว่ามีเพียงหนึ่งอินสแตนซ์ของสคริปต์ที่ทำงานในเวลา
Wojtek Naruniec

1
บางทีก็น่าสังเกตว่าถ้าคุณไม่มี Magento cron ทำงานเป็นประจำเป็นงานที่ทำงานบ่อยที่สุดทั้งนี้ขึ้นอยู่กับการกำหนดเวลา cron ของคุณคุณยังสามารถรับ 2 อินสแตนซ์ของงานเดียวกันที่ทำงานในเวลาเดียวกันและอาจทำให้เกิดปัญหา ดังนั้นฉันจะเห็นด้วยกับเบ็นการวิ่งทุกนาทีเป็นความคิดที่ดีที่สุดจากนั้นคุณก็รู้ว่าสถานการณ์นี้ไม่เคยเกิดขึ้น
Jonathan Hussey

@ Jonathan Hussey: เท่าที่ฉันรู้ว่างานทั้งหมดจะถูกดำเนินการตามลำดับ ดังนั้นเมื่อคุณรันตัวกำหนดตารางเวลาด้วย cron.sh คุณควรจะปรับ ไม่ใช่เหรอ
hellcode
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.