2011-01-11 28 views
8

Cron Los trabajos están cerrados en mi servidor y el administrador del servidor no acepta abrirlos. Porque, los trabajos de cron ralentizan el servidor, etc. Entonces, necesito una alternativa.¿Hay alguna alternativa de trabajos de Cron?

Tengo que ejecutar un archivo php (cron.php) cada 2 minutos.

Entonces, ¿cómo puedo hacer esto?

+1

es 'cron.php' sirve de una red servidor o yo s solo un script local? –

+4

La respuesta corta es obtener un mejor host ... – ircmaxell

+0

@Jesse, se sirve desde un servidor web y se puede acceder con un navegador – Eray

Respuesta

2

Depende de su acceso en la caja.

PHP en sí mismo no podrá ejecutarse de manera independiente. Podría hacer un script que intente aumentar su tiempo de ejecución constantemente, durmiendo y buscando nuevos trabajos regularmente. Pero eso no es óptimo ya que tendrás que acceder a él a través del navegador una vez, y el script debería asegurarse de que solo se ejecute una vez.

Con el acceso al shell, puede ejecutar el script php en el intérprete de comandos, lo que evitaría que se llame desde el público y tenga que ejecutarlo a través del navegador web.

Con acceso al shell también puede ejecutar un programa que le brinde un servicio (cron). Ya sea un Java, Python u otro programa.

Los trabajos de cron no deben ralentizar el servidor siempre. Eso depende del trabajo que se ejecuta. Si sus trabajos son tan caros, su administrador probablemente no estará de acuerdo con trabajar alrededor de los trabajos cron cerrados y ralentizar nuevamente el servidor de todos modos, y puede tomar otras medidas para evitar que trabaje.

1

Subscriba a un servicio de monitoreo del sitio web (gratuito) y programe su [url] /cron.php. Puede hacer que la página de su página web devuelva algo significativo y configurar el servicio de supervisión para notificarle sobre esa respuesta.

-2

Si tenía muchos visitantes, simplemente escriba en la base de datos la última visita, y si el tiempo de anidación es más necesario, ejecute cron. Pero en realidad, encuentra un nuevo hosting.

7

A pesar de que la cuestión se publicó hace un tiempo, sólo tenía el mismo problema, pero encontró una solución (basado en Kissaki's answer, gracias!) Y pensé que había puesto está aquí para cualquiera que todavía esté buscando una posible solución.

Requisitos:

  • acceso SSH
  • Python

Código (Python):

from subprocess import call 
import time 
while True: 
    call(["php","cron.php"]) 
    time.sleep(120) 
+0

¡Esto es bastante limpio! ¡Gracias por compartir! – Yavor

+0

Entonces, ¿debo llamar al script de python por ssh una vez? –

+0

Correcto. Si tiene soporte para "pantalla", también puede hacerlo en segundo plano. – DaJF