我有一个基于sharp-architecture框架的Web应用程序。它实际上使用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 框架。
什么是解决此问题的最佳方法?
感谢您的帮助
答案 0 :(得分:3)
使用NHibernate facility,然后在ISessionManager
中注入IJob
。这应该给你一个ISession每个线程,你应该没有问题。
答案 1 :(得分:0)