Cómo configurar el trabajo cron de Magento

El trabajo cron de Magento es un componente importante para un rendimiento correcto. Se usa ampliamente para ejecutar acciones que se realizan según lo programado, como la indexación y el almacenamiento en caché, la generación de mapas del sitio, las actualizaciones de tipos de cambio y muchas más. La funcionalidad cron predeterminada de Magento incluye el programador AOE, pero lo primero es lo primero.

Sin embargo, hoy nos gustaría explicar en detalle cómo puede configurar cron sin problemas. El proceso de configuración puede variar un poco según el panel de control de su sitio (cPanel, Plesk, etc.).

En Magento 2, las tareas se realizan automáticamente a través de cron. Y no tiene la oportunidad de controlar estos procesos desde su panel de administración como solía ser en M1. No puede editar los trabajos cron, elegir cuándo y con qué frecuencia deben ejecutarse, etc. Para facilitar las cosas a los especialistas no técnicos, hemos desarrollado el Cron Scheduler . Con la interfaz intuitiva, verá qué tareas están completas y qué tareas están planificadas. Al mismo tiempo, si algunas tareas cron provocan errores, esta extensión le enviará un correo electrónico de notificación.

Resumen del artículo [ ocultar ]

    • ¿Con qué frecuencia debe ejecutar ejecuciones de cron para Magento?
    • Comandos para ejecutar cron en Magento
          • Magento 1.x
          • Ejecute cron en Magento 2.x
    • Agregar una nueva tarea cron de Magento a través de SSH
    • Agregar una nueva tarea cron de Magento a través de cPanel
    • Comprobar el estado del cron de Magento
  • Errores comunes de la configuración del cron de Magento
    • Asegurarse de que las instrucciones sean válidas
    • Usando la dirección de correo electrónico para cron
          • Magento 1.x:
          • Magento 2.x
    • Problemas de redirección de salida

¿Con qué frecuencia debe ejecutar ejecuciones de cron para Magento?

Nuestra recomendación es ejecutar el trabajo cron no manualmente cada 5 minutos. Hemos visto varias recomendaciones, desde una vez en una hora hasta una vez en un minuto, pero una vez cada 5 minutos según nuestra experiencia es una elección correcta para una tienda Magento típica de tamaño mediano. Si configura el trabajo cron para que se ejecute cada 5 minutos y usa SSH, la parte del comando responsable de la programación se verá así:

*/5 * * * *

Comandos para ejecutar cron en Magento

Los comandos utilizados para ejecutar cron son diferentes para varias versiones de Magento.

Magento 1.x

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. sh / ruta / a / su / magento / sitio / raíz / cron . sh

Ejecute cron en Magento 2.x

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] php / ruta / a / su / magento / sitio / root / bin / magento quiet cron : ejecutar [ / php ]

No olvide cambiar /ruta/a/su/magento/sitio/raíz a la ruta de la carpeta predeterminada de su sitio web. Magento 1.x tiene la opción de ejecutar cron a través de la URL de su sitio, pero no recomendamos hacerlo. Dicho método causa problemas con la ejecución de varios procesos cron simultáneos, que también pueden seguirse con problemas de rendimiento del servidor y fallas en la finalización de tareas.

Si el cron de Magento 2 no se ejecuta correctamente, puede consultar el cron.log para encontrar errores.

Agregar una nueva tarea cron de Magento a través de SSH

Inicie sesión en el servidor a través de SSH. Ejecute el comando crontab -e para agregar una tarea cron. En este punto, verá un editor de texto, donde puede agregar o editar tareas cron. A partir de una nueva línea, agregue el siguiente registro:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] */ 5 * * * * sh / ruta / a / su / magento / sitio / root / cron . sh [ / php ]

Nuevamente, ¡no olvide insertar su propia ruta de carpeta predeterminada!

Guarde los cambios y cierre el archivo. Si hizo todo correctamente, el comando crontab -l le mostrará la tarea recién creada.

Agregar una nueva tarea cron de Magento a través de cPanel

Para configurar una nueva tarea cron en Magento a través de cPanel, inicie sesión en el panel de configuración de su sitio en

http://yourmagentosite.com:2082/ o https://yourmagentosite.com:2083/.

Luego, ingrese cron en el campo de búsqueda y verá una opción de trabajos Cron en la sección Avanzado .

Para configurar un trabajo cron con este método, es posible que deba ingresar una dirección de correo electrónico en la sección de correo electrónico de Cron . Este correo electrónico se utilizará para enviar mensajes cron, lo cual es útil en caso de problemas de ejecución de trabajos cron.

Ahora configuremos el programa cron y el comando que se ejecutará.

Presione Agregar nuevo trabajo cron para finalizar su configuración.

Comprobar el estado del cron de Magento

Para asegurarse de que cron se instaló correctamente y que su tarea cron funciona como debería, puede revisar los cambios que aparecen en la tabla cron_schedule de la base de datos de Magento. Si su contenido está cambiando, entonces configuró cron de inmediato.

NB: ¡No cambie manualmente nada en esta tabla de base de datos! En este punto todo lo que debes hacer es mirar.

Aquí está el ejemplo. Abrimos la mesa:



Después de esperar un poco, vemos que la tarea se realizó:

Errores comunes de la configuración del cron de Magento

Asegurarse de que las instrucciones sean válidas

Según nuestra experiencia, los errores más comunes al configurar cron en cualquier sitio web se deben a la copia de instrucciones de Internet. Muy a menudo esas instrucciones son correctas pero necesitan adaptación para su servidor o eran correctas en el momento en que se escribió el artículo pero ya no lo son.

Para asegurarse de que está utilizando las instrucciones correctas, consulte los artículos de soporte de su empresa de hosting o pregunte al administrador del sistema.

Por ejemplo, un artículo aleatorio dice que el comando de trabajo cron se ve así:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] */ 5 * * * * / var / www / magento / cron . sh [ / php ]

Esto es correcto, pero también debe recordar que los permisos para el archivo /var/www/magento/cron.sh deberían permitir su ejecución. Aquí hay un método universal en el que permite que el intérprete de comandos ejecute el archivo:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] */ 5 * * * * sh / var / www / magento / cron . sh [ / php ]

Aquí hay otro ejemplo de un comando tomado de un artículo aleatorio:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] */ 5 * * * * / usr / bin / php / var / www / magento / cron . php [ / php ]

¿Qué pasa si no te funciona? Tal vez en su caso, PHP esté instalado en otra carpeta (como /usr/local/bin/php o /opt/php/bin/php), por lo que es mejor usar el archivo cron.sh, que busca el propio intérprete de PHP.

Usando la dirección de correo electrónico para cron

Asegúrese de utilizar la dirección de correo electrónico correcta en MAILTO. Si hay un problema con la ejecución de la tarea cron, recibirá un correo electrónico con la descripción del error, que en caso de problemas lo ayudará a comprender qué salió mal.

Aquí se explica cómo configurar cron para Magento y agregar una dirección de correo electrónico para recibir mensajes:

Magento 1.x:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] MAILTO = «webmaster@ejemplo.com»
  2.  
  3. */ 5 * * * * sh / ruta / a / magento / cron . sh [ / php ]

Magento 2.x

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] MAILTO = «webmaster@ejemplo.com»
  2.  
  3. */ 5 * * * * php / ruta / a / magento / bin / magento quiet cron : ejecutar [ / php ]

Como siempre, no olvide reemplazar la dirección de ejemplo con su propio correo electrónico e inserte la ruta correcta a su carpeta predeterminada de Magento.

Problemas de redirección de salida

Otro error común que debe conocer es la redirección de salida a /dev/null. Se usa si se informan algunas advertencias durante la ejecución de tareas cron y el propietario no desea corregir los problemas. Así es como se ve el comando:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. [ php ] */ 5 * * * * sh / var / www / magento / cron . sh >/ dev / null 2 ​​>& 1 [ / php ]

En ese caso, cualquier salida de la tarea cron se suprime para evitar recibir mensajes de advertencia constantes. La cuestión es que, si de alguna manera se producen algunos errores fatales durante la ejecución del cron, tampoco sabrá sobre ellos, y puede ralentizar la investigación y deshacerse de los problemas.

El mismo efecto se puede ver si establece un MAILTO vacío.

Esperamos que este artículo haya sido útil para usted. Si todavía sientes que no entiendes del todo qué hacer, no dudes en acudir a un especialista.