2010-10-18 23 views
5

Estoy buscando un buen tutorial cronjob o libro para aprender a crear uno con PHP.PHP - buen cronjob/crontab/cron tutorial o libro

+0

Nada en http://stackoverflow.com/search?q=cron+php? – Gordon

+0

@Gordon Decidí hacer mi propia pregunta para la que pensaba que SO, ya que cada pregunta tiene respuestas diferentes. – HELP

+1

@huf [esa es una idea errónea] (http://meta.stackexchange.com/questions/17494/im-new-to-stackoverflow-what-should-i-consider-before-asking-questions "Meta: lo que debería Considero antes de hacer preguntas "). Se le recomienda usar la función de búsqueda y considerar las preguntas que SO le brinda al ingresar su pregunta. Se desaconseja publicar preguntas duplicadas, ya que solo agrega desorden. – Gordon

Respuesta

12

Cronjob no es algo para crear como proceso PHP o script. Cron es un programa de Linux que le permite llamar a un script en un intervalo regular.

Se puede ver lo que es un crontab mediante la introducción en su máquina Linux como un usuario administrador y escriba:

[email protected]:~# crontab -e 

Usted verá algo como

*/1 * * * * /usr/bin/php /var/www/somesite/public/cron.php 

Esto significa que cada minuto que estoy ejecutando el cron.php.

Ahora, es posible que desee tener diferentes scripts ejecutados en diferentes momentos y desea pasar esta lógica al nivel de php en lugar de a nivel de Linux. Si este es el caso, es posible que desee llamar a su script cron en el denominador de tiempo más bajo (por ejemplo, un minuto) y en el cron.php construir alguna lógica que llame en diferentes momentos a otros scripts.

yo uso, por ejemplo, una interfaz Cronable:

interface Cronable { 
    public function cron(); 
} 

Y cada clase que quiere ser llamado por el cron.php tiene que implementar esta interfaz y la función cron(), que especifica qué es el frecuencia específica de la llamada. El cron.php obtendrá todas estas clases y comparará la hora actual con ese momento y decidirá ejecutar la llamada o no.

+0

En realidad, el programa es cron. crontab es la lista de trabajos para que se ejecute. –

+0

estás en lo correcto. –

1

No crea uno con PHP. Usted crea uno usando crontab(1).

2

No creo que necesite un libro completo para aprender esto.

básicamente estás escribiendo su guión como siempre lo haces (evitar el uso de $_SERVER) y el hacer una entrada a su crontab como esto:

* * * * * [/path/to/php/]php /path/to/your/script/script.php 
1

o simplemente podría abrir CPANEL y buscar CRONJOBS. allí puede seleccionar qué archivo php o script necesita ejecutar y cuándo hacerlo, una vez por hora, por día, cada domingo y así sucesivamente.

1

Como han dicho otros, cron no es algo que llame dentro de PHP, lo que explica por qué no ha encontrado ningún tutorial para hacerlo.

La pregunta es: ¿qué estás tratando de hacer exactamente? ¿Desea ejecutar un programa PHP en un intervalo regular? Si eso es lo que quieres hacer, entonces sí, necesitarás cron, pero nada de eso sería específico de PHP, así que solo busca tutoriales cron sobre cómo formatear los archivos crontab.

Si desea configurar su configuración cron en PHP (que es como se lee de su pregunta), entonces deberá modificar el archivo crontab. Este es un archivo de texto simple, por lo que cargarlo y guardarlo sería tan fácil como cualquier otro archivo de texto. (Es probable que tenga problemas con los permisos de archivos, pero eso es algo con lo que probablemente debería obtener ayuda por separado).

Para modificar la configuración de crontab, necesitará saber cómo formatear las entradas en el archivo crontab, así que de nuevo los mismos tutoriales específicos de cron que mencioné anteriormente serán útiles (es decir, no es necesario incluir ' PHP 'en tu búsqueda). Luego, escribe un programa php que pueda guardar datos en ese formato. En realidad, no es un formato muy complicado, por lo que si conoces PHP razonablemente bien, deberías ser capaz de descifrar cómo analizar los datos. (pero háganos saber si necesita más ayuda con eso)

Espero que lo ayude a comenzar.

Cuestiones relacionadas