Reputation: 899
Quick question regarding Quartz.NET 1.0 and thread management. If I'm running Quartz.NET as a Windows Service, and am executing multiple jobs simultaneously, do all of these jobs (Quartz.NET threads) run inside the same AppDomain? That is, are they started as separate AppDomains inside the Quartz.NET AppDomain, or as separate threads inside it? And how would a long-running, slow process within one job affect other jobs? Should there be any impact? Trying to get a better understanding of how running multiple jobs simultaneously might impact the system overall. Thanks.
Upvotes: 1
Views: 480
Reputation: 6884
All jobs are ran using worker threads that come from Quartz's thread pool. You can configure the thread pool thread count which correlates to the amount of jobs that could run simultaneously. This thread pool is inside the same AppDomain where Quartz is started. Quartz does not create its own AppDomains.
Like any job, a long running job uses a thread from the pool. Had you many long running jobs you might run out of threads which would cause delays - the job would be triggered late (based on misfire policy). If you don't have the IStatefulJob implemented a job might be ran simultaneously by two triggers if the triggering interval is shorter than the job execution time.
Upvotes: 1