Aggiornamenti automatici Database

Veronica Auretta

Nuovo Utente
21 Apr 2015
25
0
0
Salve, ho una domanda veloce da fare, ho bisogno di aggiornare autoaticamente alcuni dati nel Db a seconda che sia un giorno particolare del mese, o un'ora particolare del giorno. Ho già sviluppato un codice funzionante in tal senso, il problema è un'altro... c'è un modo perché questi aggiornamenti avvengano anche se nessuno è collegato al sito? (tipo la notte) Attualmente la funzione si attiva ad ogni refresh di pagina, è situata nell'header, funziona solo se qualcuno visualizza il sito e ho bisogno che lo faccia anche senza nessuno connesso alla pagina. E' possibile? se sì come? (posterò codici solo se necessario)
Grazie!
 
Ho letto qualcosa in merito al cronjob o crontab e sarei interessato anche io a capirci qualcosa in più.. A quanto pare tramite questo sistema si possono temporizzare le esecuzioni degli script
 
Come ha indicato otto9due, i cronjob sono lo strumento per pianificare l'esecuzione di uno script.
Alcuni provider lo offrono come servizio e molto spesso mettono a disposizione un form molo semplice da compilare per indicare quale script deve essere avviato e con quale ricorrenza temporale.

Se poi il provider presso cui vi trovate non dispone del servizio esistono servizi online sia gratuiti che a pagamento che vi permettono di pianificare comunque dei job.

Un esempio è sicuramente questo sito che offre il servizio anche gratuitamente seppur con qualche limitazione nel tempo di timeout dello script o nel numero di esecuzioni giornaliere.

Non c'è realmente molto altro da dire sull'argomento, ma se posso aiutarvi a chiarire ulteriori dubbi fatemelo sapere ;)
 
Come ha indicato otto9due, i cronjob sono lo strumento per pianificare l'esecuzione di uno script.
Alcuni provider lo offrono come servizio e molto spesso mettono a disposizione un form molo semplice da compilare per indicare quale script deve essere avviato e con quale ricorrenza temporale.

Se poi il provider presso cui vi trovate non dispone del servizio esistono servizi online sia gratuiti che a pagamento che vi permettono di pianificare comunque dei job.

Un esempio è sicuramente questo sito che offre il servizio anche gratuitamente seppur con qualche limitazione nel tempo di timeout dello script o nel numero di esecuzioni giornaliere.

Non c'è realmente molto altro da dire sull'argomento, ma se posso aiutarvi a chiarire ulteriori dubbi fatemelo sapere ;)
Anzitutto ti ringrazio per la pazienza e la gentilezza che dimostri ogni volta. Per quanto riguarda i cron job ancora qualche dubbio lo avrei..
1) Dipende dal provider? E' possibile quindi che non se ne possa fare utilizzo facendo rimanere tutto sul proprio dominio, a parte servizi esterni intendo ( che a questo punto mi chiedo come interagiscano con pagina hostate sui nostri domini )?
2) Qualora si possano utilizzare, ho letto alcune guide in proposito e volevo capire una cosa che in nessuna delle guide che ho letto è specificata:

Mettiamo caso che io non voglia generare dei file di log, ne per l'avvenuta esecuzione ne per l'errore, ( giusto ai fini di test ) l'unica cosa che dovrei inserire è una stringa del genere..
PHP:
59 23 * * *  php  --q  directory/cron.php
Per eseguire lo script contenuto nella pagina /cron.php ogni sera alle 23:59..
Secondo questo schema trovato online che m sembra abbastanza chiaro:
PHP:
Minutes [0-59]
|   Hours [0-23]
|   |   Days [1-31]
|   |   |   Months [1-12]
|   |   |   |   Days of the Week [Numeric, 0-6]
|   |   |   |   |
*   *   *   *   *  php  --q  directory/cron.php
Si ma questa stringa dove devo andare a metterla?? Questo mi chiedo da giorni.. E poi basta solo questo per far funzionare il tutto, o il file di log deve per forza essere creato?
 
1) Dipende dal provider? E' possibile quindi che non se ne possa fare utilizzo facendo rimanere tutto sul proprio dominio, a parte servizi esterni intendo ( che a questo punto mi chiedo come interagiscano con pagina hostate sui nostri domini )?

Si dipende dal provider.
Cron (su linux) è il software da riga di comando responsabile della registrazione e dell'esecuzione dei cronjob, di conseguenza se il software non è installato sul server o se il provider non ti fornisce uno strumento per permetterti di istruire tale software con una crontab (ovvero, la lista dei comandi che vuoi vengano pianificati) non puoi fare molto in quanto su un normale piano hosting non hai accesso diretto alle risorse del server.


2) Qualora si possano utilizzare, ho letto alcune guide in proposito e volevo capire una cosa che in nessuna delle guide che ho letto è specificata....?

Il log di cui parli suppongo si riferisca ai log automatici generati da cron, che sono prevalentemente informazioni archiviate sul server, probabilmente in /var/log e non ti dovrebbero interessare.

L'istruzione di cui hai letto e che hai postato è niente più che una regola da inserire nella crontab (che sostanzialmente è un file). Cron legge le regole in questo file ed esegue le operazioni pianificate richieste agli intervalli indicati.

Salvo che tu non abbia un server dedicato da gestirti, o una VM locale su cui effettuare dei test, non dovresti poter riuscire ad editare direttamente il file della crontab.
 
Ultima modifica:
Come ha indicato otto9due, i cronjob sono lo strumento per pianificare l'esecuzione di uno script.
Alcuni provider lo offrono come servizio e molto spesso mettono a disposizione un form molo semplice da compilare per indicare quale script deve essere avviato e con quale ricorrenza temporale.

Se poi il provider presso cui vi trovate non dispone del servizio esistono servizi online sia gratuiti che a pagamento che vi permettono di pianificare comunque dei job.

Un esempio è sicuramente questo sito che offre il servizio anche gratuitamente seppur con qualche limitazione nel tempo di timeout dello script o nel numero di esecuzioni giornaliere.

Non c'è realmente molto altro da dire sull'argomento, ma se posso aiutarvi a chiarire ulteriori dubbi fatemelo sapere ;)

Ti ringrazio per la risposta, per quello che mi riguarda, e mi occorre, l'utilizzo di un servizio esterno è più che sufficiente! ...anche perché il mio provider non mi fornisce alcun strumento per gestirli. :o grazie di tutto
 
( che a questo punto mi chiedo come interagiscano con pagina hostate sui nostri domini )

Mi ero proprio perso di vista questo trafiletto, comunque interagiscono con una semplice richiesta HTTP attraverso la rete.
Dovrai semplicemente configurare il servizio esterno con una url che punta al tuo script di aggiornamento.
 
Mi ero proprio perso di vista questo trafiletto, comunque interagiscono con una semplice richiesta HTTP attraverso la rete.
Dovrai semplicemente configurare il servizio esterno con una url che punta al tuo script di aggiornamento.

Si, alla fine mi sono iscritto su uno di questi siti che offrono i cron gratuiti, e nel range di quelli gratuiti ci navigo uhauha.. Mi calzano a pennello, grazie. Per ora ne sto utilizzando solo due che mi generano dei report in diversi orari della giornata. Poi vorrei utilizzarlo anche per fare un backup del db..
 

Discussioni simili