Ayuda con crear un cron desde cero

Foro de habla español

Ayuda con crear un cron desde cero

Postby mcamposs » 8:12am, Thu 25 Dec, 2014

Hola,

Alguien puede indicarme cómo crear un cron desde cero?

Si pueden indicarme cómo hacerlo en un VPS con Plesk, mucho mejor. Pero lo importante es la parte del cron con PHPlist.

Muchas gracias
mcamposs
phpLister
 
Posts: 10
Joined: 4:50am, Tue 19 Aug, 2014

Re: Ayuda con crear un cron desde cero

Postby luuuciano » 2:53pm, Tue 06 Jan, 2015

mcamposs wrote:Hola,

Alguien puede indicarme cómo crear un cron desde cero?

Si pueden indicarme cómo hacerlo en un VPS con Plesk, mucho mejor. Pero lo importante es la parte del cron con PHPlist.

Muchas gracias


Fijate algo de esto: https://www.google.com.ar/search?q=crea ... +vps+plesk
luuuciano
PL Freak!
 
Posts: 524
Joined: 2:14am, Mon 07 May, 2007

Re: Ayuda con crear un cron desde cero con VPS con Plesk 12.

Postby mcamposs » 4:33am, Mon 12 Jan, 2015

Hola amigos,

Esta vez quiero aportar un granito de arena a ésta valiosa comunidad de PHPlist.

Muchas veces los que contestan creen que el que pregunta lo sabe casi todo, y por lo tanto hacen respuestas a medias e incompletas.

Entonces voy a contestar mi propia pregunta de cómo crear un cron desde cero. Lo voy a explicar para personas novatas, nuevas, no es para expertos.

Sucede que cuando creamos la campaña en phplist y configuramos la fecha y hora de envío de la misma, la campaña no se envía, solo se pone suspendida o lo que es lo mismo, en cola de envío. Hay algunos servidores de hosting que en los que sí funciona el cronómetro del tiempo, así que al llegar el tiempo definido de la campaña, se procesa el envío del lote inmediatamente, y hasta ahi somos felices, porque no hay nada mas que hacer. Podemos tener la certeza que que cada campaña programada saldrá a la hora y fecha indicada. En mi experiencia personal con un VPS con Cpanel en Hostgator, esto funciona de maravillas.

El problema se dá en otros proveedores de hosting, no diré nombres. Al llegar la hora/fecha del envío de la campaña, ésta se pone en modo suspendido. Entonces tenemos que buscar como enviar la campaña por medio de una tarea programada, es decir un comando Cron que se ejecuta en el servidor cada cierto tiempo.

Un cron es, pues, un comando que ejecuta una tarea cada cierto tiempo especificado. Esta sentencia de cron puede ser fácilmente configurada tanto en Cpanel como en Plesk, siendo la única diferencia la ruta de los archivos que se van a ejecutar.

Cuando se instala phplist, digamos en una carpeta que llame envios, tenemos varias carpetas y archivos muy importantes, en éste caso, para nuestro cron solo necesitaremos el archivo index.php ubicado en la carpeta admin, y el archivo config_extended.php ubicado en la carpeta config.

Entonces vamos a crear un cron que ejecute el archivo index.php y que al mismo tiempo procese la cola de la campaña suspendida conforme los parámetros de config_extended.php
Nota: Es probable que el cron funcione con el archivo config.php en algunos servidores de hosting, pero en mi caso particular con un VPS con plesk 12.0.8, el cron funcionó con el archivo config_extended.php.

Por lo tanto la ruta de ejecución de ambos archivos es sumamente importante, puesto si pones otra ruta, el cron no econtrará los archivos a ejecutar.

La línea de comando normalmente es similar a ésta (Versión de Linux Centos 6 y 7):

/usr/bin/php -q /var/www/vhosts/midominio.com/httpdocs/envios/admin/index.php -p processqueue -c /var/www/vhosts/midominio.com/httpdocs/envios/config/config_extended.php

Si te fijas, es importante conocer la ruta correcta de cada archivo para que el cron se ejecute bien.

Solo falta configurarle la fecha y hora de la ejecución del cron. Es muy importante decir, que si llega la hora de ejecución del cron y tu campaña no está en cola, ésta campaña no se enviará. Por decir un ejemplo, si pones que la campaña se envíe el 1 de Enero a las 10 am, tu cron debe ejecutarse ese mismo día después de las 10:01 am como mínimo. Debes prestar especial atención a la hora del server, porque es probable no sea la misma hora que tienes en tu zona local.

Ahora ya tenemos el cron listo, éste se ejecutará siempre a la misma hora, los días que lo hayamos configurado.

En el caso de Plesk 12.0.8, la ruta donde se configura el cron es la siguiente :
Home - My Webspaces - Manage Hosting
Scheduled task
Add task
Seleccionar hora y fecha de la tarea
En la líneas del cron agregas tu línea: /usr/bin/php -q /var/www/vhosts/midominio.com/httpdocs/envios/admin/index.php -p processqueue -c /var/www/vhosts/midominio.com/httpdocs/envios/config/config_extended.php
Salvar y listo.

Ahi mismo en Settings, importante, porque ahi pones el correo donde quieres recibir el reporte del funcionamiento del cron:
Send to the email I specify : email@midominio.com

Cada vez que se ejecute el cron, te llegará un email con el reporte.

En mi caso, cuando me llegó el primer reporte, éste me dijo que no se ejecutó el cron, y me dió un mensaje de error:
-: /usr/bin/php: No such file or directory

Después de buscar en google una respuesta a éste problema, dado que que ésta comunidad no hay respuesta, encontré estas páginas que resuelven el problema de un solo:
http://ivanargulo.com/blog/cron-que-no- ... k-solucion
http://shaun.net/2011/09/solving-plesk- ... on-issues/

En mi caso el primer link, resolvió mi problema completamente en mi servidor VPS con plesk 12.0.18.

Ahora en el correo me llega el mensaje del cron:
phpList version 3.0.11 (c) 2000-2015 phpList Ltd, http://www.phplist.com PHPList - Started.............

La campaña empieza a ser enviada sin problemas.

Espero le pueda servir a alguien.

Saludos.

MCampos
mcamposs
phpLister
 
Posts: 10
Joined: 4:50am, Tue 19 Aug, 2014


Return to Spanish forum

Who is online

Users browsing this forum: No registered users and 2 guests