当前位置: 首页 > 知识库问答 >
问题:

限制两个作业不能在Quartz-Scheduler中同时运行

汪阳辉
2023-03-14

在Quartz-Scheduler中是否可以定义作业的执行约束?

谢谢你的回答。

共有1个答案

唐炳
2023-03-14

对此没有直接的支持。如果是同一个作业,您可以将其定义为有状态的--这样的作业不能在定义中并发运行。

否则,您可以将Quartz工作线程的数量限制为1,此外,您还可以定义线程优先级以选择应首先运行的作业。不幸的是,当涉及到更多的工作时,这个解决方案将无法扩展。

最后,您可以在不涉及Quartz的情况下手动实现此操作。我猜你不希望某些操作或某些资源同时被访问。考虑锁定该方法/资源,以便两个作业同时运行,但其中一个会阻塞并等待另一个完成。

 类似资料:
  • 正如title一样,我有几个同时设置触发时间的作业,但我不希望它们一次全部执行。因为我担心它可能会导致我的系统过热问题。有没有什么方法可以配置触发器,使它的执行时间可以在定义的偏移量之间变化? 例如: 排定要在12pm执行的2个作业:Job1和Job2 在12pm执行Job1。 在12:01pm执行Job2。

  • 我有一个作业,它在集群环境中的多个服务器上运行。但是,我想限制作业只在一台服务器中运行,其他服务器不应该运行同一作业,一旦其他服务器启动了它。 我已经使用一些数据库表探索了Spring批处理具有锁机制,但仅在Spring中寻找任何解决方案。

  • 我正在使用Java中的Quartz调度程序来运行cron作业。这是我第一次使用这个框架运行cron作业,所以我有些困惑。 我跟随本教程是为了更好地理解如何使用Quartz框架。 如果JobA每周运行,那么它应该打印出和。但是如果JobA每个月都在运行,那么它应该打印出和所以下一个问题是--有没有什么方法,我们可以在运行JobA时向它传递参数?

  • 问题是,使用这种方法,会不断增加。

  • 我正在尝试使用Spring Batch和Spring Task Scheduler运行两个作业,而不考虑它们的调度时间。这两个作业(Tasklet)在不同的时间间隔执行不同的作业。 以下是springConfig。xml文件: 以下是CouPonTougleActivationScheduler和OTPJobScheduler的实现: @enableSched调度公有类CouPonTougleAc