Wie sicher ist es, den Job magento cron.php cron jede Minute auszuführen?

11

Über Magento 1.9

Ich möchte die cron.php von Magento jede Minute ausführen, da ich möchte, dass Verkaufs-E-Mails auf Kundenbestellung so schnell wie möglich gesendet werden. Neben der E-Mail-Funktion kann mir jemand mitteilen, was die Standard-cron.php in dem Sinne tut, wie sinnvoll es ist, sie jede Minute auszuführen, und wenn wir sie jede Minute ausführen, wird es zu einem Problem, wenn Sie sich vor 1 Minute darüber im Klaren sind diese Jobs.

Zertix.net
quelle

Antworten:

8

Völlig sicher - und in den meisten Fällen obligatorisch, andernfalls können Jobs übersprungen werden.

Stellen Sie einfach sicher, dass Sie cron.shnicht ausführencron.php

Beachten Sie nur, dass die Regelmäßigkeit des Cron selbst nicht bestimmt, wann Cron-Operationen stattfinden - das Modul selbst tut dies.

Z.B. Verwenden des fantastischen MageRun zum Auflisten von Aufgaben,

[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  | *  | *  | *  | *  |
+-----------------------------------------+------+----+----+----+----+

Sie können sehen, dass unter den Aufgaben die regelmäßigste in dieser Liste alle 5 Minuten ist. Das bedeutet , dass selbst wenn die cron jede Minute laufen konfiguriert werden, würde es keinen Unterschied machen, wie newsletter_send_allund xmlconnect_notification_send_allwürde nur alle 5 Minuten laufen.


Wenn CLI nicht Ihre Tasche ist, können Sie mit dem (ebenso fantastischen) Aoe Scheduler die Zeitleiste visualisieren.

Auf diese Weise können Sie sehen, wann Aufgaben ausgeführt werden sollen und ob sie ausgeführt oder übersprungen werden.

Ben Lessani - Sonassi
quelle
Warum cron.sh über cron.php?
Navarr
cron.sh stellt sicher, dass nur eine Instanz des Skripts zur Zeit ausgeführt wird
Wojtek Naruniec
1
Vielleicht ist es auch erwähnenswert, dass, wenn Magento Cron nicht so regelmäßig ausgeführt wird wie der am häufigsten ausgeführte Job, abhängig von Ihren Cron-Timings auch zwei Instanzen desselben Jobs gleichzeitig ausgeführt werden können, was zu Problemen führen kann. Also würde ich Ben zustimmen, dass es die beste Idee ist, es jede Minute laufen zu lassen, dann wissen Sie, dass diese Situation niemals auftreten kann.
Jonathan Hussey
@ Jonathan Hussey: Soweit ich weiß, werden alle Jobs nacheinander ausgeführt. Wenn Sie also den Scheduler mit cron.sh ausführen, sollte es Ihnen gut gehen. Ist es nicht?
Hellcode