Conceptos básicos: Tareas programadas y Cron Job

Titular de los derechos
Medialab-Prado

PARA VER CON IMÁGENES, DESCARGAR WORD.

En CiviCRM cuenta con una serie de tareas programadas que podemos administrar (veremos cómo más abajo) y que activan determinadas funciones de la herramientas. Por ejemplo, sin estas tareas, los correos masivos no se enviarían automáticamente, los grupos inteligentes no se renovarían automáticamente con los contactos que cumplieran los requisitos para formar parte de ellos y las bases de datos no se limpiarían de archivos temporales automáticamente.

Es decir, gestionando estas tareas programadas nos vamos a quitar de trabajo manual que vamos a delegar en la propia herramienta CiviCRM. Esta administración de las tareas programadas requiere de dos pasos:

  1. La configuración de las tareas programadas individuales.
  2. La configuración de un “disparador” que active todas las tareas programadas.

Las tareas programadas las encontramos en > Administrar > Opciones del sistema > Tareas programadas. Pulsando en Editar, podemos activar o desactivar la tarea programada y decidir cada cuánto queremos que se ejecute la tarea programadas (cada hora, cada día o siempre que se ejecute una tarea en el CRON – veremos lo del Cron más abajo). Algunas tareas necesitan ejecutarse con mucha frecuencia; por ejemplo, el envío de correo electrónico tiende a programarse una vez cada 5 o 10 minutos. Otros, se pueden ejecutar con menos frecuencia; por ejemplo, la limpieza de temporales vale con programarla para que se realice una vez al día.

En la columna “Última ejecución” vemos la última fecha y hora en la que la tarea programada de realizó.

Para que estas tareas se ejecuten, no basta con activarlas y con establecer cada cuánto queremos que se ejecuten. Necesitamos un “disparador” que las accione. Sin ese disparador, las tareas simplemente no se ejecutan. Por ejemplo, un correo masivo programado se quedará en el estado “Programado” para siempre. Desde esta pantalla, podemos accionar cada una de las tareas individualmente. Eso sí, una por una. Pinchamos en > more > Ejecutar ahora.

Otro mecanismo, en este caso para dispararlas todas a la vez, sería escribir en la barra de direcciones las siguientes URL y pulsar intro; la pantalla del navegador se quedará en blanco y si consultamos la columna “Última ejecución” veremos cómo se han actualizado los tiempos.

DRUPAL:

WORDPRESS:

“Name” y “Password” serían los del usuario del CMS; la site-key en Drupal la podemos encontrar en la ruta del servidor “root/sites/default/civicrm.settings.php” y en Wordpress en “root/wp-content/plugins/civicrm/civicrm.settings.php”.

Lógicamente, esto no es lo ideal: porque nos lleva tiempo, porque se nos puede olvidar, etc. Por eso, conviene, como hemos dicho anteriormente, completar el segundo paso de la configuración, que consiste en establecer un “disparador” que accione automáticamente todas las tareas programadas sin que tengamos que hacerlo nosotras.

¿Qué es el Cron?

El Cron es un programador automático que activa la ejecución de ciertos programas en el servidor web. En este caso, lo que buscamos es que accione todas las tareas programadas de nuestro CiviCRM. Para configurar este cron contamos con varias opciones distintas que se traducen en el mismo resultado.

1. Configurar el Cron Job en nuestro servidor WEB. En nuestro caso, la empresa con la que tenemos contratado el alojamiento no quiso configurar el Cron Job por motivos de seguridad. En Internet hay tutoriales de cómo se configura en Plesk (http://www.duttotech.com/php/cron-jobs-como-funcionan-y-se-instalan-bajo-plesk/) y en CPanel (http://nuthost.info/configurar-cron-job-basico.html).

2. Usar una aplicación gratuita en Internet. Por ejemplo, easycron.com (https://www.easycron.com/tutorials/how-to-set-up-cron-job-for-civicrm). El problema es que la cuenta gratuita tiene sus limitaciones, como por ejemplo, tener que renovarla mensualmente.

3. Usar módulos y plugins del CMS. Como solución alternativa a las de arriba, podemos optar por instalar plugins o módulos en Drupal o Wordpress.

En Drupal, optamos de momento por instalar el módulo CiviCRM Cron. Este módulo ejecuta las tareas programadas de CiviCRM cuando se ejecuta el Cron de Drupal. Si damos a configurar, nos va a pedir la Site Key del sitio (ver más arriba) y un usuario y contraseña del CMS si vamos a usar el CiviMail.

El único problema que tiene es que el tiempo mínimo de ejecución del Cron de Drupal es de una hora. Si queremos disparar todas las tareas manualmente (y también para establecer cada cuánto queremos que se ejecute el cron), debemos ir en Drupal a > Configuración > Sistema > Cron y pulsar en “Ejecutar cron”.

En Wordpress, instalamos el plugin “Run External Crons” (una vez instalado, se accede a él desde el menú de “Ajustes”). Con este módulo, podemos disparar las tareas programadas de nuestro CiviCRM en Wordpress, pero también podríamos en un momento dado accionar los de otras Webs que gestionáramos.

Tan sólo tenemos que añadir en el primer campo la dirección que más arriba poníamos en la barra del navegador y añadir cada cuánto queremos que se ejecute el cron en segundos.