我是Quartz .NET的新手。我使用的是2.6版本。 我有2种工作,低优先级和高优先级。我只想要一个线程池用于高优先级的工作。 有没有办法配置调度程序来处理这个?
由于
答案 0 :(得分:1)
我想要一个仅用于高优先级作业的线程池。
ThreadPool为Quartz提供了一组在执行Jobs时使用的线程。当有一个新作业时,它应该在石英线程池的线程中执行,这个线程只能来自Quartz Thread Pool。
您可能拥有多少个线程池:每个Quartz调度程序实例只允许您创建一个线程池,并且此调度程序实例中的所有作业都将在此池中运行。
因此您可以创建许多Quartz调度程序实例,从而分离您的作业。
注意:线程池大小,线程系统优先级和池实现可以是modified/replaced。要提供自己的实现,您需要一个派生自IThreadPool
interface
/// Execute the given <see cref="Task" /> in the next
/// available <see cref="Thread" />.
bool RunInThread(Func<Task> runnable);
来自docs:Quartz附带一个名为Quartz.Simpl.SimpleThreadPool
的简单(但非常令人满意)的线程池。这个IThreadPool
实现只是在其池中维护一组固定的线程 - 永不增长,永不收缩。但它非常强大并且经过了很好的测试 - 几乎所有使用Quartz的人都使用这个池。