2

シャープ アーキテクチャフレームワークに基づく Web アプリケーションがあります。実際にはDalにNHibernateを使用しており、(VIEW-CONTROLLER)とDALの間にサービスレイヤーを追加しました。

ジョブを頻繁に実行するには、実際にスケジューラを実装する必要があります。そのタスクを実行するためにQuartz.netを使用します。実際、私は問題に直面しています。30秒ごと、毎日、毎週など、さまざまなスケジュールで実行される多くのジョブがあるためです。

Quartz 内でサービス注入を使用してNHibernateを実行する方法があるかどうか、それがジョブの同時実行をサポートするかどうか、つまり 2 つのジョブが同時に実行されるかどうか、NHibernate に問題がないかどうかを知りたいです。NHibernate とマルチスレッドに問題があることは知っています。

Spring 用の Quartz.Net の実装を見つけました ( 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を使用してより高レベルになり、1 つの IC フレームワークに限定されないようにしたいと考えています。

この問題を解決する最善の方法は何ですか?

ご協力いただきありがとうございます

4

2 に答える 2

3

NHibernate 機能を使用してから、sに注入ISessionManagerしますIJob。これにより、スレッドごとに 1 つの ISession が提供され、問題はないはずです。

于 2009-03-11T22:21:27.740 に答える
0

See this http://docs.castleproject.org/Contrib.Quartz-Net-integration.ashx

于 2011-11-21T07:59:09.997 に答える