Quão seguro é executar o trabalho cron do magento cron.php a cada minuto?

11

Sobre o Magento 1.9

Eu quero executar o cron.php do Magento a cada minuto, porque eu quero que o email de vendas seja enviado o mais rápido possível no pedido do cliente. Portanto, além da função de email, alguém pode me informar o que o cron.php padrão faz no sentido de como é sábio executá-lo a cada minuto, e se o executamos a cada minuto, o que estar ciente antes de 1 minuto se torna um problema para esses trabalhos.

Zertix.net
fonte

Respostas:

8

Completamente seguro - e na maioria dos casos obrigatório, caso contrário, os trabalhos podem acabar sendo ignorados.

Apenas verifique se você está executando cron.shnãocron.php

Apenas observe que a regularidade do cron em si não ditará quando as operações do cron ocorrerem - o próprio módulo faz isso.

Por exemplo. Usando o incrível MageRun para listar tarefas,

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

Você pode ver que, dentre as tarefas, a mais regular nesta lista é a cada 5 minutos. O que significa que mesmo se o cron deviam ser configurado para ser executado a cada minuto, que não iria fazer a diferença, como newsletter_send_alle xmlconnect_notification_send_allsó seria executado a cada 5 minutos.


Se a CLI não é sua bagagem, você pode usar (o igualmente incrível) Aoe Scheduler para visualizar a linha do tempo.

Isso permitirá que você veja quando as tarefas devem ser executadas e se estão sendo executadas ou ignoradas.

Ben Lessani - Sonassi
fonte
Por que cron.sh sobre cron.php?
Navarr 20/08/15
cron.sh garante que apenas uma instância do script é executado no momento
Wojtek Naruniec
1
Talvez também seja importante notar que, se você não tiver o cron do Magento executando tão regularmente quanto o trabalho em execução com mais frequência, dependendo do tempo do cron, você também pode obter duas instâncias do mesmo trabalho em execução ao mesmo tempo e isso pode causar problemas. Então, eu concordo com Ben, tê-lo a cada minuto é a melhor ideia, então você sabe que essa situação nunca pode ocorrer.
Jonathan Hussey
@ Jonathan Hussey: Até onde eu sei, todos os trabalhos são executados sequencialmente. Portanto, quando você executa o agendador com o cron.sh, deve ficar bem. Não é?
hellcode