【问题标题】:Schedule a task using java使用java安排任务
【发布时间】:2011-07-21 05:20:24
【问题描述】:

我需要在 web 应用程序中使用 java 来安排任务。更重要的是能够暂停和恢复计划。我知道有 TimerTask 和 Timer 但不确定它们是否有这个暂停选项。我使用 Quartz 失败了调度程序我也没有时间调试那段代码。任何人都可以指出一个可以调度、暂停和恢复任务的示例吗?

【问题讨论】:

  • 您的代码中是否有弹簧组件?因为 spring 提供了一个非常好的且易于实现的定时器任务包装器。
  • 不幸的是它的 Struts 1 :(

标签: java scheduler


【解决方案1】:

我知道您在使用 Qartz 时遇到过问题,但请再看一下 CronTrigger。作为pausing a task 的示例,请查看以下答案:Quartz Java resuming a job excecutes it many times

【讨论】:

  • Quartz 的问题是它没有被暂停或恢复。
  • 请查看链接的答案以暂停 CronTrigger。
【解决方案2】:

您是否尝试过使用布尔标志来暂停它的普通线程?

我个人会使用带有标志的 ScheduledExecutorService。

【讨论】:

  • 对不起,我的时间已经不多了。任何例子。我知道贪婪太多了,但我的情况需要如此。道歉。
【解决方案3】:

从根本上说,任务是您的代码。因此,除非您的代码提供暂停功能,否则其他框架将无济于事。提供暂停的最简单方法是公开一个仅在线程上调用 sleep 的公共方法。现在框架可能会调用你的公共方法来暂停(睡眠)你的线程。

【讨论】:

  • 你不能在另一个线程上调用 sleep。
  • 精确!!这就是为什么我说你必须在你的任务中公开一个让当前线程休眠的方法:)
  • 除非当前线程是调用该方法的线程,即框架。唯一有效的是有一个方法来设置任务线程定期检查的标志。然后它必须调用等待而不是睡眠,以便它也可以被唤醒。
  • @Michael,如此真实,实际上这本身就是我的想法......我想我应该休息一下
猜你喜欢
  • 1970-01-01
  • 2017-02-17
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 2016-06-17
  • 1970-01-01
相关资源
最近更新 更多