Quartz.net + parallel task library

I am working on updating the job scheduling system that we use internally in a company that uses Quartz.net. Looking at the source of the latest version of Quartz, I noticed that it still uses its own implementation of the thread pool, unlike the significantly improved thread pool (or something from System.Threading.Tasks), which started shipping with .NET 4.0.

I would be interested to know if the job scheduling system, which uses Quartz.net for its scheduling functions and TPL to combine threads, has been successfully implemented. Is it relatively easy to exchange a Quartz thread pool for TPL? Is quartz still relevant in the world of tasks? Alternatively, as I am getting big improvements in the .NET 4.x thread pool (kernel awareness, local queues, improved locking, etc.), This is a Quartz thread pool, sufficient for typical rough background jobs, and not worth the effort forcing TPL into a mix?

Thank you in advance for understanding how to use (or not use) these two tools together.

+6
source share
1 answer

Quartz.NET should solve a slightly different problem than TPL. Quartz.NET is designed for regular job scheduling with a rich set of features for synchronizing execution. TPL, on the other hand, is designed for high-performance parallel execution of computational workload.

Thus, in essence, you (usually) use Quartz.NET for accurate planning and TPL for getting congruent workloads that need to be completed as quickly as possible, using all computing resources (kernels, etc.).

Having said that, I would say that the thread pool implementation used by Quartz.NET is sufficient to work. Also keep in mind that Quartz.NET is compatible with .NET 3.5 and cannot use only the 4.0 features.

Of course, you can also combine the two in your solution.

+3
source

All Articles