À quel point est-il sûr d'exécuter la tâche cron magento cron.php toutes les minutes?

11

À propos de Magento 1.9

Je veux exécuter cron.php de Magento toutes les minutes car, je veux que les e-mails de vente soient envoyés le plus tôt possible sur la commande du client. En plus de la fonction de messagerie électronique, quelqu'un peut-il me faire savoir ce que fait le cron.php par défaut dans le sens où il est sage de l'exécuter toutes les minutes, et si nous l'exécutons toutes les minutes, ce qu'il faut savoir avant 1 minute devient un problème pour ces emplois.

Zertix.net
la source

Réponses:

8

Entièrement sûr - et dans la plupart des cas obligatoire, sinon les travaux peuvent finir par être sautés.

Assurez-vous simplement que vous n'exécutez cron.shpascron.php

Notez simplement que la régularité du cron lui-même ne dictera pas quand les opérations cron auront lieu - le module lui-même le fait.

Par exemple. Utilisation de l'impressionnant MageRun pour répertorier les tâches,

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

Vous pouvez voir que parmi les tâches, la plus régulière de cette liste est toutes les 5 minutes. Ce qui signifie que même si le cron devait être configuré pour s'exécuter toutes les minutes, cela ne ferait aucune différence, car newsletter_send_allil xmlconnect_notification_send_allne s'exécuterait que toutes les 5 minutes.


Si CLI n'est pas votre sac, vous pouvez utiliser (le tout aussi génial) Aoe Scheduler pour visualiser la chronologie.

Cela vous permettra de voir quand les tâches doivent être exécutées et si elles sont en cours d'exécution ou ignorées.

Ben Lessani - Sonassi
la source
Pourquoi cron.sh sur cron.php?
Navarr
cron.sh s'assure qu'une seule instance du script s'exécute à la fois
Wojtek Naruniec
1
Peut-être vaut-il également la peine de noter que si Cron Magento ne s'exécute pas aussi régulièrement que le travail le plus fréquemment exécuté, en fonction de vos horaires cron, vous pouvez également obtenir 2 instances du même travail en même temps et cela peut causer des problèmes. Je suis donc d'accord avec Ben, le faire fonctionner chaque minute est la meilleure idée, alors vous savez que cette situation ne peut jamais se produire.
Jonathan Hussey
@Jonathan Hussey: Autant que je sache, tous les travaux sont exécutés séquentiellement. Ainsi, lorsque vous exécutez le planificateur avec cron.sh, tout devrait bien se passer. N'est-ce pas?
hellcode