【问题标题】:How can I set priorities to quartz trigger?如何设置石英触发器的优先级?
【发布时间】:2011-08-04 12:37:20
【问题描述】:
我正在使用 Quartz Scheduler,有 15 个作业。每个作业都有一个触发器。
我想为每个触发器设置优先级。我可以将低优先级设置为 10,将高优先级设置为 1。
但是由于我有 15 个触发器用于 15 个作业,因此每个触发器需要不同的优先级。
例如 trigger1 的优先级为 10,trigger2 的优先级为 9。
这样,我需要为两个触发器赋予相同的优先级。
那么如果两个具有相同优先级的触发器将同时执行,那么哪个触发器将首先执行?
谁能告诉我如何为不同的触发器设置不同的优先级?
【问题讨论】:
标签:
quartz-scheduler
scheduler
【解决方案1】:
触发器有一个名为WithPriority 的属性,它接受一个整数值。当同时触发多个触发器时,调度程序将首先触发具有最高优先级的触发器。如果两个触发器具有相同的优先级,那么任何一个触发器都会被触发。
-
.WithPriority(15) 将首先运行
-
.WithPriority(1) 将是最后一个触发器
【解决方案2】:
触发器具有“优先级”属性。只需在创建触发器时相应地设置属性,或使用 api 检索触发器、设置优先级并重新安排它们。
如果两个或多个触发器具有相同的触发时间和相同的优先级,则将随机选择一个触发第一个(排序还可以基于什么?)。