La strana storia di Quartz, Castle ed NHibernateFacility nel mondo di Lucilla

C’era una volta una applicazione web che aveva in cui i servizi di business logic si godevano beati il loro lifestyle PerWebRequest… finchè un giorno irruppe il prode cavaliere oscuro pronto a prestare i suoi servizi in background… e a scombinare il regno di Lucilla mettendo in crisi i servizi resi orfani del fido custone in HttpContext che teneva gelosamente la session al sicuro…

Panico nel Castello… ed ora che si fa? Calma e gesso disse il re (e chi sarà mai questo re? ;D).. che i servizi cambino stile di vita e diventino Transient(i)!

oohhhhh (questo è vs dopo l’estenuante modifica di 1 parametro nel regno di Lucilla)

Ora il prode Quartz era pronto a sfoderare tutta la sua potenza schierando nelle seconde file i servizi di supporto e le attività pianificate. Ma ecco che allo scoccare della mezzanotte il primo cavaliere cade sconfitto: il custode della session non c’e’ più, è rimasto prigioniero nelle segrete dell’HttpContext.

Panico nel castello… la signora facility giace nel letto di HttpContext e non può soddisfare contemporaneamente anche il CallContext… HttpContext o CallContext, IsWeb=true o IsWeb=False? (http://stw.castleproject.org/Windsor.NHibernate-Facility.ashx)

“IsWeb ‘sta cippa” tuonò il re.. “Facility fa quello che dico io. Si costruisca una nuova stanza per ospitare sia HttpContext che CallContext e che Facility sia sempre pronta a svegliare il custode della session appropriato”…

E tutti vissero felici e contenti.. https://gist.github.com/775282

Intepreti in ordine sparso..
Il re : io me medesimo
Il regno di Lucilla: Lucilla.Framework
Facility: http://stw.castleproject.org/Windsor.NHibernate-Facility.ashx
Il custode in HttpContext: Castle.Facilities.NHibernateIntegration.SessionStores.WebSessionStore
Il custode in CallContext: Castle.Facilities.NHibernateIntegration.SessionStores.CallContextSessionStore
Il cavaliere oscuro: http://quartznet.sourceforge.net/
La nuova stanza dei custodi: Lucilla.Framework.Core.Data.NHFacility.LucillaSessionStore
Tempo di realizzazione: 1/10 di quello impiegato a scrivere questo post.. possibile solo nel regno dell’opensource.

0 commenti

Background, Castle, Lucilla, NHibernate, Quartz.Net, Session

[top]


(will not be published)
(es: http://www.mysite.com)

 
Andrea Balducci - IEnumerable.it