Domanda

Ho un'applicazione web basata sul sharp-architecture . In realtà utilizza NHibernate per il dal e ho aggiunto un livello di servizio tra (VIEW-CONTROLLER) e DAL.

In realtà ho bisogno di implementare uno scheduler per eseguire frequentemente i miei lavori. Userò Quartz.net per fare questo compito. In realtà sto affrontando un problema. Perché avrò molti lavori che verranno eseguiti in orari diversi, come ogni 30 secondi, ogni giorno, ogni settimana.

Voglio sapere se esiste un modo per eseguire NHibernate con l'iniezione del servizio all'interno di Quartz e se supporterà la concorrenza dei lavori, intendo se due lavori vengono eseguiti simultaneamente , se non ci saranno problemi con NHibernate. So che c'è qualche problema con NHibernate e multithreading .

Ho trovato un'implementazione di Quartz.Net per Spring ( http://www.zorched.net/2009/03/07/using-quartznet-springnet-and-nhibernate-to-run-scheduled-tasks-in -aspnet / ) e un'implementazione per Castle-Windsor ( http://bugsquash.blogspot.com/2009/03/windsor-facility-for-quartznet.html ).

Il problema è che penso che questo esempio non si occupi del caso in cui i lavori possano essere eseguiti simultaneamente, questo è un problema Nhibernate. E voglio usare CommonServiceLocator per essere di livello più alto e non limitarmi a un IoC .

Quale può essere l'approccio migliore per risolvere questo problema?

Grazie per l'aiuto

È stato utile?

Soluzione

Utilizza la la struttura NHibernate , quindi inserisci ISessionManager nei tuoi IJob . Questo dovrebbe darti una ISession per thread e non dovresti avere problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top