Насколько безопасно запускать задание magento cron.php cron каждую минуту?

11

О Magento 1.9

Я хочу запускать Magento cron.php каждую минуту, потому что я хочу, чтобы рекламное письмо отправлялось как можно быстрее по заказу клиента. Поэтому, кроме функции электронной почты, кто-то может сообщить мне, что делает cron.php по умолчанию в том смысле, насколько разумно запускать его каждую минуту, и если мы запускаем его каждую минуту, то, что нужно знать до того, как 1 минута станет проблемой для эти рабочие места.

Zertix.net
источник

Ответы:

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 минут. Это означает , что даже если хрон должны были быть настроены на запуск каждую минуту, это не будет иметь значение, так как newsletter_send_allи xmlconnect_notification_send_allбудет работать только через каждые 5 минут.


Если CLI не ваша сумка, то вы можете использовать (столь же потрясающий) Aoe Scheduler для визуализации временной шкалы.

Это позволит вам увидеть, когда задачи должны выполняться, и выполняются ли они или пропущены.

Бен Лессани - Сонасси
источник
Почему cron.sh, а не cron.php?
Наварр
cron.sh гарантирует, что в данный момент выполняется только один экземпляр скрипта
Войтек Нарунец
1
Возможно, также стоит отметить, что если у вас не работает Magronto cron так же часто, как наиболее часто выполняемое задание, в зависимости от времени выполнения cron вы также можете запустить 2 экземпляра одного и того же задания одновременно, что может вызвать проблемы. Поэтому я бы согласился с Беном: лучше всего запускать его каждую минуту, тогда вы знаете, что такая ситуация никогда не произойдет.
Джонатан Хасси
@ Джонатан Хасси: Насколько я знаю, все работы выполняются последовательно. Поэтому, когда вы запускаете планировщик с помощью cron.sh, все будет в порядке. Не так ли?
адский код