10

如何使用每天在指定时间(比如上午 11:00)运行任务java.util.Timer?我使用的是 JDK 1.4.2,我知道它很旧,但这是项目需要的。

4

6 回答 6

32

Quartz 是在 Java 环境中调度进程的最著名的解决方案,但您有很多选择。检查此列表:

Quartz是一个开源作业调度系统,可以与几乎任何 J2EE 或 J2SE 应用程序集成或一起使用。Quartz 可用于创建简单或复杂的时间表。

Jcrontab旨在与任何项目进行扩展和集成。读取并存储要在文件、数据库或 EJB 中执行的任务,并提供 Web UI 和基本的 Swing GUI。

Essiembre J2EE Scheduler是一种用于 J2EE 应用程序的简单任务调度机制。这个库可以被认为是标准 Java API 中的 Timer 和 TimerTask 类的包装器。要执行的任务及其频率的配置是基于 XML 的。

cron4j是 Java 2 平台的调度程序,与 UNIX cron 守护进程非常相似。

Oddjob的目标是为将企业的关键业务流程联系在一起的所有批处理文件和 cron 作业提供一些顺序和可见性。

Fulcrum Scheduler提供调度服务。它基于 Turbine 提供的 TurbineScheduler,但所有旧的东西都已被删除。目前只完成了非持久调度程序。它从组件配置 xml 文件加载计划作业。

Gos4j -Goal Oriented Scheduling for Java - 是一种基于目标组织处理优先级的方法。

Job Scheduler是一个作为恶魔运行的批处理程序,可以使用图形用户界面进行控制。Job Scheduler 为计划的程序、脚本以及任务处理的时间和频率使用 XML 配置。可以使用 API 来控制事件并将日志记录到您的作业中。

JDRing是一个轻量级的 Java 调度库,简单而小巧,但仍支持以指定的时间间隔、作为一次性事件或具有完全类似 cron 控制的复杂调度的响铃警报。

jBatchEngine是一个用 Java 编写的批处理作业假脱机程序。与 Cron 等时间驱动的调度程序相比,jBatchEngine 是事件驱动的。

MyBatchFramework是一个开源轻量级框架,旨在创建易于使用 Java 语言的健壮且易于管理的批处理程序。

Super with SuperScheduler和 SuperWatchdog是一个 Java 作业调度程序,为所有应用程序提供丰富的 GUI。它是平台中立的。成为 Linux 和 Solaris 的作业调度程序特别好。它提供了 Microsoft Windows 调度程序的一组超级功能。它提供事件触发的调度。它可以在分布式环境中调度任务。一个任务将在网络中的所有机器中执行一次且仅一次。所有任务都是假期可调的。即使每项工作都是 STANDBY 工作,历史也将成为重要任务的良好跟踪。它支持国际化。

来源:Java 中的开源作业调度程序

于 2009-09-30T15:55:17.333 回答
4

查看 TimerTask 和 Timer - 两者都在那个版本的 JDK 中。

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

将其设置为运行您想要的第一个日期,然后将一天中的毫秒数作为您的延迟。

于 2009-09-30T15:26:45.580 回答
3

您是否可以使用诸如cron4j 之类的库?这将使您的工作更轻松!

于 2009-09-30T15:26:52.827 回答
2
  • Java Timers 可以按时间间隔、预定时间等运行任意作业。
  • 石英
  • 如果你真的想简单一点,请将其包装在 shell 脚本中并放入 cron 中。
于 2009-09-30T15:29:55.973 回答
1

你必须使用石英

不过,我从来不知道谁首先推出了 Quartz。

如果你有一个应用服务器或类似的工件,你可以在那里配置 Quartz 作业并让它在给定的时间运行你的任务。

于 2009-09-30T15:29:25.973 回答
0

也许,最近的帖子可以帮助您:

这会暂停我的 Java 线程一分钟吗?

我对这个问题的回答是使用基于 java.util.Time 和 java.util.TimerTask 类的 java 内置实现: 这会暂停我的 Java 线程一分钟吗?

或者,您可以将 crontab 服务用于 *nix 平台(也适用于 Windows 平台)。这是定期运行独立作业的最简单和轻量级的样式。

[]的,

和过去

于 2009-09-30T15:37:00.487 回答