Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
php e mysql. timed task
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
gek
Eroe
Eroe


Registrato: 22/01/06 16:55
Messaggi: 53
Residenza: Ravenna

MessaggioInviato: 19 Lug 2008 15:03    Oggetto: php e mysql. timed task Rispondi citando

ciao! sto creando un sito in php + mysql. Ho una form per la registrazione che invia una mail con un link da cliccare per poter essere attivati.

i dati relativi alla registrazione io li inserisco in una tabella temporanea, dopo devono rimanere memorizzati per 24h.. Ecco dunque il mio problema: avendo io acquistato dello spazio su Aruba, come posso creare un tasked "temporizzato", un trigger.. qlcosa che dopo 24h dall'inserimento in tabella mi cancelli la linea selezionata?
grazie, Giacomo
Top
Profilo Invia messaggio privato HomePage Yahoo MSN
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 19 Lug 2008 17:46    Oggetto: Rispondi citando

Se hai la possibilità di smanettare con cron oppure con qualunque altro sistema di pianificazione sul server ti conviene creare uno script che si preoccupi di eliminare le righe quando viene chiamato e programmi lo schedulatore affinchè lo faccia partire ogni (ad esempio) 30 min.
Quando uscirà la versione 5.1 stabile di mysql allora questa gestirà da sola la pianificazione.
Al momento altri modi non me ne vengono in mente.
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 19 Lug 2008 19:20    Oggetto: Rispondi citando

Da non esperto di php e MySQL,
ma giusto come idea ... in generale:


Oppure setti una cron che ogni 24 ore lanci un programma che elimini tutte quelle che nel frattempo sono scadute (cioè sono più vecchie di 24 ore).

Certo così c'è il rischio che qulcuna resti di più nella tabella temporanea.
Esempio:
All'1 di notte del giorno 1 cron lancia il proramma di pulizia
Allle 2 di notte del giorno 1 un utente si registra.
All'1 di notte del giorno 2 cron lancia il proramma di pulizia, tale programma vedrà i dati di quella registrazione, ma essendo vecchi solo 23 (< 24 ore) ore non li rimuoverà.
(Allle 2 di notte del giorno 2 in teoria quei dati scadrebbero. In realtà non succede niente e l'utente può ancora registrarsi)
All'1 di notte del giorno 2 cron lancia il proramma di pulizia, tale programma vedrà i dati di quella registrazione, e poiché sono più vecchi di 24 ore li cancellerà.

La durata varia qindi tra 1 giorno e 1 giorno 23ore 59 minuti ecc. ecc. (diciamo 2 giorni).
Volendo puoi ridurre questo tempo, impostando cron in modo che esegua il programma di pulizia più spesso. Ad es. 4 volte al giorno (ogni 6 ore), in questo modo la durata massima diventa 1 giorno 5 ore 59 minuti ecc. ecc..
Non penso sia un grosso problema, a meno che a te serva che assolutamente un utente non possa registrarsi se è pasato anche un solo minuto in più rispetto alle 24 ore previste.



In questo modo i vari lavori programmati ad una certa ora li setti tu in anticipo (di solito l'hosting provider fornisce un'interfaccia grafica,
mentre non è deto che il tuo programam php sia autorizzato a creare pianificare l'esecuzioen di un programma ad un certo orario)
Top
Profilo Invia messaggio privato
gek
Eroe
Eroe


Registrato: 22/01/06 16:55
Messaggi: 53
Residenza: Ravenna

MessaggioInviato: 21 Lug 2008 01:10    Oggetto: buona idea Rispondi citando

le idee mi sembrano entrambe buone.. solo che non sono sicuro di poter accedere a cron... qualcuno che abbia un account su aruba sa se è possibile ed eventualmente come??

altrimenti io avevo pensato di controllare PRIMA di accettare un nuovo utente, e di cancellare tutte le pre-iscrizioni più vecchie di 24 ore, e solo a quel punto procedere alla query di ricerca. in questo modo anche se i dati stanno effettivamente più tempo nella tabella temp, in effetti non sono accessibili dopo le 24 ore canoniche. che ne dite?

(tra l'altro credo che questo sia il metodo usato da phpnuke...)
Top
Profilo Invia messaggio privato HomePage Yahoo MSN
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 21 Lug 2008 11:32    Oggetto: Rispondi citando

Ad occhio e croce però se per assurdo nessun nuovo utente chiede di registrarsi tu non hai nulla che spurghi il db.
Top
Profilo Invia messaggio privato
gek
Eroe
Eroe


Registrato: 22/01/06 16:55
Messaggi: 53
Residenza: Ravenna

MessaggioInviato: 22 Lug 2008 11:18    Oggetto: db pieno Rispondi citando

questo è pure vero, ma in quel caso al massimo resta pieno di tante righe quanti sono gli utenti che hanno riempito il form, hanno aspettato più di 24 ore e non si sono registrati, a partire dal momento in cui l'ultimo utente si registrò. non saranno più di 1 o 2 voci a mio avviso...
Top
Profilo Invia messaggio privato HomePage Yahoo MSN
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 22 Lug 2008 11:46    Oggetto: Rispondi citando

Diamo per buono che non puoi gestire cron.
Se la cancellazione avvenisse da parte della pagina che l'utente deve chiamare entro le 24 ore tu risolvi il problema. La pagina controlla se la riga corrispondente a quella registrazione è troppo vecchia: se così non registra è cancella la riga altrimenti registra e cancella la riga.
In più tu prepari lato amministratore una pagina che viene chiamata a mano ogni tanto e che controlla la presenza nella tabella di righe troppo vecchie: se le trova le cancella.
Facendo così il db resta pulito perchè comunque è la pagina di conferma che si occupa di pulire; per le iscrizioni "appese" non confermate c'è lo script manuale che fai partire ogni tanto.
Top
Profilo Invia messaggio privato
gek
Eroe
Eroe


Registrato: 22/01/06 16:55
Messaggi: 53
Residenza: Ravenna

MessaggioInviato: 22 Lug 2008 17:18    Oggetto: Rispondi citando

io dico che cron è inutilizzabile.. ma solo perché non ho trovato nessuna smentita per la rete. qlcuno sa se aruba permette di impostare tasks con cron? e se si come si fa?

cmq la soluzione di lanciare ogni tanto un batch di pulizia non è poi così male.. magari che faccia anche altre cose (backup, pulizia di più tabelle...) perfetto. grazie mille per l'aiuto!!
Top
Profilo Invia messaggio privato HomePage Yahoo MSN
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 22 Lug 2008 17:57    Oggetto: Rispondi citando

gek ha scritto:
io dico che cron è inutilizzabile.. ma solo perché non ho trovato nessuna smentita per la rete. qlcuno sa se aruba permette di impostare tasks con cron? e se si come si fa?
C'è un pannello di controllo?

Se sì, c'è una seizone tipo "operazioni pianificate"?
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 22 Lug 2008 18:37    Oggetto: Rispondi citando

dimenticavo,
il tuo hosting è Linux o Windows?
Top
Profilo Invia messaggio privato
gek
Eroe
Eroe


Registrato: 22/01/06 16:55
Messaggi: 53
Residenza: Ravenna

MessaggioInviato: 22 Lug 2008 22:40    Oggetto: hosting Rispondi

il sito in questione effettivamente è hosting Windows, ma ho altri domini che invece sono Linux con lo stesso sistema di registrazione.
Top
Profilo Invia messaggio privato HomePage Yahoo MSN
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi