software codecept atdd php automation

codecept - ¿Cómo ejecutar un script PHP cada 5-10 minutos sin cron, perl, etc.?



phpunit (9)

Quiero ejecutar un script cada 5 minutos en el servidor. No tengo ningún tipo de privilegios de administración para hacer un trabajo cron, etc.

No soy un buen programador de PHP, por lo que esta pregunta puede parecer extraña, pero si lo entiende, por favor, dígame una solución.


Algo como:

ini_set(''max_execution_time'', ''sometime''); while(1){ //do something sleep(sometime); }

Aunque no recomiendo hacer esto. Es hora de mudarse a un servidor que satisfaga sus necesidades.


Aquí hay otro ''hack''. Como no puede ejecutar cron en la máquina donde está el script, tal vez pueda ejecutar cron en otra máquina.

Si puede ... configurar un trabajo cron para que se ejecute cada 5 minutos ... El trabajo puede ser un simple script PHP que llame a su otro script PHP. Puede utilizar cURL para "llamar" a su script (si un servidor web está sirviendo ese script)


Asi es como lo hago

if(date(''i'', time())%5==0) { // run this code }


Estoy seguro de que estas herramientas pueden ayudarlo con su solicitud:

SetCronJob - www.setcronjob.com

Cronless - cronless.com

EasyCron - www.easycron.com

Cron Jobs en línea - www.onlinecronjobs.com

Corntab - www.corntab.com

getCron - www.getcron.com

Sin embargo, no es buena idea depender de otro sitio web.

Tanques a google


Mi solución si su servidor es Linux. Hacer un script de bash:

#bin/bash while [ true ] do //do whatever you want, use curl, lynx to your page... sleep 5m done

Ejecútalo y si tu servidor no se reinicia o el script no te mata, estarás bien.

Esta no es una buena solución, pero funciona.


Mira this y this .

(Editado para incluir contenido de los enlaces).

  • PHP Cron Daemon está dirigido por una base de datos para programar la ejecución de tareas (como cron ). Puede analizar un archivo crontab y extraer las definiciones de programación de trabajos en una tabla de base de datos MySQL. Cuando es hora de ejecutar un trabajo programado, ejecuta el comando del trabajo en la definición de crontab como código PHP como un proceso separado. La salida del código PHP del trabajo también se almacena en una tabla de base de datos.

Parece que tu única solución sería "Poor Man''s Cron".

Lo que haces es crear un script que colocas encima de cada página que solo se ejecuta cada 5 minutos. Sin embargo, no se garantiza que se ejecute cada 5 minutos. Como requiere que alguien visite las páginas con el "cron del hombre pobre" y si nadie visita más de 5 minutos, no se ejecutará hasta que alguien lo haga.

Algún código de ejemplo:

<?php // load the last run time from a file, database, etc if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes // do your task here // save the last run time to a file, database, etc }


Recomendaría este servicio, lo usé hoy y parece funcionar bien.

Cron-Job

y si, es gratis!


Utilizo webcron.org que es un servicio en línea asequible. La ventaja para mí es que luego tengo una visión general de todas las tareas programadas, en todos los servidores.