tomminno
24-02-2011, 16:22
Il titolo è un pò strano ma dovevo mantenermi sul breve.
Fondamentalmente il mio problema nasce con delle date su un database le quali comandano dei processi di elaborazione.
Essendo dati statici in un database non ho un evento o una qualunque segnalazione che mi possa dare il via all'elaborazione.
Lavoro con una infrastruttura ad eventi con ESB e Workflow Engine pertanto è tutto molto fluido e configurabile, tranne questo tipo di elaborazioni.
Ad esempio arriva un ordine e questo mi rappresenta un evento e posso far partire delle operazioni in seguito a questo.
Poi però devo controllare gli ordini che non sono stati pagati da più di X giorni e annullarli.
Ovviamente l'operazione di annullamento non si conclude con un semplice cambio di stato sul database perchè in tal caso potrei semplicemente avere un job schedulato su db.
Con SqlServer potrei inserire del codice managed nelle procedure per eseguire anche task più complessi, ma limitazioni di sicurezza e di topologia della rete non consentono tale implementazione, e soprattutto con MySql questo non sarebbe possibile a prescindere.
L'unica soluzione che riesco a trovare è ovviamente schedulare qualcosa che ogni giorno mi controlli gli ordini non pagati e faccia partire il flusso opportuno.
Il problema è che questi controlli schedulati sono troppi, ogni giorno c'è qualcuno che chiede una qualche nuova procedura che prevede elaborazioni tipo la precedente, con richieste tipo: "Ho bisogno di essere avvisato 3 giorni prima della scadenza", ecc...
Insomma la situazione è diventata caotica.
Esiste qualche tecnica, pattern, best practice in un qualunque linguaggio che mi consenta l'elaborazione che non sia lo schedulare un applicativo che esegua delle query ogni sera per controllare queste date?
Se proprio non ci fosse esiste sempre un qualche best practice per evitare di essere sommersi da migliaia di applicativi schedulati?
Fondamentalmente il mio problema nasce con delle date su un database le quali comandano dei processi di elaborazione.
Essendo dati statici in un database non ho un evento o una qualunque segnalazione che mi possa dare il via all'elaborazione.
Lavoro con una infrastruttura ad eventi con ESB e Workflow Engine pertanto è tutto molto fluido e configurabile, tranne questo tipo di elaborazioni.
Ad esempio arriva un ordine e questo mi rappresenta un evento e posso far partire delle operazioni in seguito a questo.
Poi però devo controllare gli ordini che non sono stati pagati da più di X giorni e annullarli.
Ovviamente l'operazione di annullamento non si conclude con un semplice cambio di stato sul database perchè in tal caso potrei semplicemente avere un job schedulato su db.
Con SqlServer potrei inserire del codice managed nelle procedure per eseguire anche task più complessi, ma limitazioni di sicurezza e di topologia della rete non consentono tale implementazione, e soprattutto con MySql questo non sarebbe possibile a prescindere.
L'unica soluzione che riesco a trovare è ovviamente schedulare qualcosa che ogni giorno mi controlli gli ordini non pagati e faccia partire il flusso opportuno.
Il problema è che questi controlli schedulati sono troppi, ogni giorno c'è qualcuno che chiede una qualche nuova procedura che prevede elaborazioni tipo la precedente, con richieste tipo: "Ho bisogno di essere avvisato 3 giorni prima della scadenza", ecc...
Insomma la situazione è diventata caotica.
Esiste qualche tecnica, pattern, best practice in un qualunque linguaggio che mi consenta l'elaborazione che non sia lo schedulare un applicativo che esegua delle query ogni sera per controllare queste date?
Se proprio non ci fosse esiste sempre un qualche best practice per evitare di essere sommersi da migliaia di applicativi schedulati?