我有一个基于 sharp-architecture 框架的网络应用程序。它实际上使用NHibernate作为dal,并且我在(VIEW-CONTROLLER)和DAL之间添加了一个服务层。

我实际上需要实现一个调度程序来经常运行我的工作。我将使用 Quartz.net 来完成该任务。其实我遇到了问题。因为我将有很多工作按不同的时间表运行,例如每30秒,每天,每周。

我想知道是否有办法在Quartz中使用服务注入运行 NHibernate ,如果它支持作业并发,我的意思是如果两个作业运行同时 ,如果NHibernate没有问题。我知道NHibernate和多线程存在一些问题。

我找到了Quartz.Net for Spring的实现( http://www.zorched.net/2009/03/07/using-quartznet-springnet-and-nhibernate-to-run-scheduled-tasks-in -aspnet / )和Castle-Windsor的实现( http://bugsquash.blogspot.com/2009/03/windsor-facility-for-quartznet.html )。

问题是,我认为这个例子并没有考虑到可以同时运行作业的情况,这是一个Nhibernate问题。我想使用 CommonServiceLocator 更高级别,而不是仅限于一个 IoC 框架。

什么是解决此问题的最佳方法?

感谢您的帮助

有帮助吗?

解决方案

使用 NHibernate工具,然后注入 IJob 中的> ISessionManager 。这应该给你一个ISession每个线程,你应该没有问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top