sql >> Base de Datos >  >> RDS >> Mysql

trabajos cron o programador PHP

Creo que tu concepto necesita cambiar.

PHP no puede programar un trabajo, tampoco MySQL. Los disparadores en MySQL se ejecutan cuando ocurre una consulta de mysql, no en un momento específico. Ninguno

Esta limitación no suele ser un problema en el desarrollo web. La razón es que su aplicación PHP debe controlar todos los datos que entran y salen. Por lo general, esto significa solo el HTML que muestra esos datos u otros formatos a los usuarios u otros programas.

En tu caso puedes pensarlo de esta manera. El plazo es una fecha fija. Puede tratarlo como datos y guardarlo en su base de datos. Cuando llega la fecha límite no es importante, lo importante es que los datos que has enviado en tu base de datos se visualicen correctamente.

Cuando se realiza una solicitud a su aplicación, verifique si la fecha límite está en el pasado, si es así, luego muestre que el proyecto está cerrado, o actualice que el proyecto está cerrado, justo antes de mostrarlo.

Realmente no hay razón para actualizar los datos independientemente de su aplicación PHP.

Por lo general, lo único que desea programar son trabajos que afectarían su aplicación en términos de carga, o que deben realizarse solo una vez, o donde la concurrencia o el tiempo son un problema.

En su caso, ninguno de esos se aplica.

PD:No he probado PHPscheduler pero puedo suponer que no es un verdadero programador. Cron es un demonio que duerme hasta que vence una tarea determinada en su cola, ejecuta la tarea y luego duerme hasta que vence la siguiente (al menos eso es lo que hace en el algoritmo actual). PHP no puede hacer eso sin los sockets y las extensiones de bifurcación, como configuración especial. Por lo tanto, lo más probable es que PHPscheduler solo verifique si la fecha de una tarea ha expirado, en cada carga de una página web (siempre que PHP ejecute una página). Esto no es diferente a simplemente verificar si la fecha del proyecto ha expirado, sin la sobrecarga de PHPScheduler.