【问题标题】:Scheduling with quartz every minute from 14:00 to 17:30从 14:00 到 17:30 每分钟使用石英进行调度
【发布时间】:2013-05-15 18:04:00
【问题描述】:

我在用石英安排我的工作时遇到问题...我找不到一个表达式可以让我每分钟从 14:00 到 17:30 运行我的工作...我已经尝试过这个

0 0-30/1 14-17 ? * MON-FRI

但不起作用

【问题讨论】:

  • "but not works" 尝试描述 a) 您预期会发生什么 b) 实际发生了什么,以及实用程序 c) 为什么您预期 (a) 会发生。
  • 使用这个表达式,pollar 在 14:00 到 14:30 运行,然后是 15:00 到 15:30,以此类推直到 17:30。但我希望它每分钟从 14:00 运行到 17:30
  • 最好将edit该信息返回到问题中。
  • 对不起,我使用了 0 0-30/1 14-17 的错误表达方式? * 周一至周五

标签: java quartz-scheduler


【解决方案1】:

您必须创建两个 Cron 表达式才能实现此目的。

  1. 从 14:00 到 17:00
  2. 17:01 至 17:30

0 0/1 * 1/1 * ? * 这是每分钟的 cron 表达式。除此之外请参考http://www.cronmaker.com/。有了这个,您将能够生成表达式。

【讨论】:

  • 我没有考虑过这个解决方案。似乎比我的好(见评论)。 +1 给你。
  • 感谢@dystroy。基本上,当谈到在时间范围之间生成 cron 表达式时,我们通常会这样做。 :)
【解决方案2】:

在春天我会这样做

@Scheduled(cron="0 0 14-16 * * *")
public void schedule1() {
    schedule2();
}

@Scheduled(cron="0 0-30 17 * * *")
public void schedule2() {
    System.out.println(new Date());
}

或在 xml 配置中

<bean id="test" class="test.Test" />

<task:scheduled-tasks>
    <task:scheduled ref="test" method="schedule2" cron="0 0 14-16 * * *"/>
    <task:scheduled ref="test" method="schedule2" cron="0 0-30 17 * * *"/>
</task:scheduled-tasks>

请注意,在 xml 配置中,您可以使用一种方法。使用注解的技巧是因为我们不能在一个方法上使用 2 个相同类型的注解。

【讨论】:

  • 我在春天使用它,将表达式放在 pollar-context.xml 中。你能告诉我如何为 cron 表达式定义两个 bean 属性..我的意思是确切的语法
猜你喜欢
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多