operazione onerosa

3 contenuti / 0 new
Ultimo contenuto
operazione onerosa

Sto creando un progetto con Drupal e, ad un certo punto, ho un problema un po' particolare da risolvere.

Da un link, partirebbe un'elaborazione che può richiedere anche un'ora di tempo. Non si può chiedere all'utente di aspettare un'ora, o se ad esempio per sbaglio chiude il browser o spegne il pc, non ho concluso molto.
Tale operazione può essere richiesta solo dagli admin del sito e, se qualcuno la fa, i dati estrapolati vanno bene per tutti quanti, indi n richieste possono essere esaudite con un'elaborazione solamente.

Quindi avevo pensato che, magari, sarebbe cosa buona e giusta se l'utente richiedente si ritrovasse a video un msg del tipo "sto elaborando, ti invierò una notifica per email", indi l'utente può anche distruggere il pc che sta usando, mentre Drupy esegue l'elaborazione per i fatti suoi. Conclusa, invierà un'email di notifica, poiché i risultati saranno già stati inseriti nel DB.
Vorrei anche poter aggiungere una sorta di log delle operazioni che via via sta eseguendo nell'email o nel DB. Sarebbe interessante poterlo vedere nella pagina web: uno degli admin logga, va nella pagina per richiedere l'elaborazione, ma la pagina lo avvisa che è già in corso l'operazione e che, senza refresh, via via scrive il log.

In che modo è gestibile una cosa del genere?

Grazie

Ciao, innanzitutto credo tu debba svilupparti un applicativo ad-hoc.
PHP non è nato per lanciare script e uscire dal flusso di elaborazione della pagina quindi la vedo un pò dura, dovresti far chiamare uno script che poi procedere indipendentemente, quindi dovrai litigare un pò. Per la scrittura di info sul DB (usando le API di drupal) e l'invio mail (vedi drupal_mail() ) dovrebbe essere sufficiente includere il file bootstrap.inc e poi eseguire il tutto.

Sul come lanciare lo script come thread... non so se sceglierei PHP per fare una cosa del genere :D

Ciao
Marco
--
My blog
Working at @agavee

eh, Drupy è un cms... Purtroppo l'esigenza è nata dopo -.- e a rifare tutto daccapo è peggio di morire xD

Però noto che molti siti ad esempio metton su un overlay e mettono l'utente in attesa, per poi sparire quando l'operazione è conclusa e a volte appaiono anche dei msg di log senza fare refresh della pagina, si potrebbe fare una cosa simile su Drupy? Se si come?

Infine, non è il caso dei trigger & action?