Mysql
 sql >> Database >  >> RDS >> Mysql

cron job o utilità di pianificazione PHP

Penso che il tuo concetto debba cambiare.

PHP non può pianificare un lavoro, né MySQL. I trigger in MySQL vengono eseguiti quando si verifica una query MySQL, non in un momento specifico. Né

Questa limitazione di solito non è un problema nello sviluppo web. Il motivo è perché la tua applicazione PHP dovrebbe controllare tutti i dati in entrata e in uscita. Di solito, questo significa solo l'HTML che mostra quei dati o altri formati agli utenti o ad altri programmi.

Nel tuo caso puoi pensarci in questo modo. La scadenza è una data prestabilita. Puoi trattarli come dati e salvarli nel tuo database. Quando si verifica la scadenza non è importante, è che i dati che hai inviato nel tuo database siano visualizzati correttamente.

Quando viene presentata una richiesta alla tua domanda, controlla se la data di scadenza è nel passato, se lo è, quindi mostra che il progetto è chiuso o aggiorna che il progetto è chiuso, appena prima della visualizzazione.

Non c'è davvero alcun motivo per aggiornare i dati indipendentemente dalla tua applicazione PHP.

Di solito, le uniche cose che vuoi pianificare sono i lavori che influirebbero sulla tua applicazione in termini di carico, o che devono essere eseguiti solo una volta, o dove la concorrenza o il tempo sono un problema.

Nel tuo caso nessuno di questi si applica.

PS:non ho provato PHPscheduler ma posso immaginare che non sia un vero scheduler. Cron è un demone che dorme fino a quando una determinata attività non è in coda, esegue l'attività, quindi dorme fino alla scadenza della prossima (almeno è quello che fa nell'algoritmo corrente). PHP non può farlo senza i socket e le estensioni del fork, come configurazione speciale. Quindi PHPscheduler molto probabilmente sta solo controllando se una data per un'attività è scaduta, ad ogni caricamento di una pagina web (ogni volta che PHP esegue una pagina). Questo non è diverso dal fatto che tu controlli semplicemente se la data del progetto è scaduta, senza il sovraccarico di PHPScheduler.