题
如何每天在指定时间(例如上午 11:00)运行任务 java.util.Timer
?我使用的是 JDK 1.4.2,我知道它很旧,但这是项目所需要的。
解决方案
石英是最知名的解决方案,安排在Java环境的过程,但你有很多选择。检查此清单:
的石英强> 是可以集成一个开源作业调度系统用,或者沿着侧几乎任何J2EE或J2SE应用程序中使用。石英可以用来创建简单或复杂的调度。
的 Jcrontab 强> 被设计成延伸并与任何项目集成。读取和存储的任务在一个文件,数据库或EJB执行并提供了网络用户界面和碱性摆动GUI。
的 Essiembre J2EE调度强> 是用于J2EE应用程序的简单任务调度机制。这个库可以被认为是围绕标准的Java API中发现的Timer和TimerTask类的包装。要执行的任务配置和它们的频率是基于XML的。
的 cron4j 强> 是用于Java 2平台的调度器,其非常类似于UNIX cron守护程序。
的 Oddjob 强> 的目标是提供一些秩序和知名度所有的批处理文件和cron作业是配合企业的关键业务流程在一起。
的支点调度强> 提供调度程序服务。它是基于提供涡轮的TurbineScheduler,但所有旧的东西已被删除。目前只有非持久调度完成。它加载计划从组件配置xml文件的工作。
的 Gos4j 强> 以Java的面向-Goal调度是的一种方式组织基于目标的处理优先级。
的作业调度程序强> 是批处理程序作为恶魔操作,并且可以使用图形用户界面来控制。作业调度器使用XML配置预定程序,脚本和任务处理的时间和频率。 API是可用的事件的手控制和记录到你的工作。
的 JDRing 强> 是一个轻量级的Java库调度是简单和小,但仍支持振铃告警在指定的时间间隔,作为一次性事件,或在配有完整类似cron控制复杂的调度。
的 jBatchEngine 强> 是用Java编写的批处理作业假脱机程序。在constrast像的Cron时间驱动调度器,jBatchEngine是事件驱动的。
的 MyBatchFramework 强> 是设计成一个开源轻量级的框架轻松地创建强大的和可管理的批处理程序到Java语言。
超是 SuperScheduler 并SuperWatchdog 是一个Java作业调度与丰富图形用户界面的所有应用程序。它是中立的平台。尤其是好是用于Linux和Solaris作业调度程序。它提供了一个超集的Microsoft Windows的调度程序的功能性。它提供了事件触发的调度。它可以安排在分布式环境中的任务。任务将网络中的所有计算机之间进行一次,并且只执行一次。所有的任务都放假调整。甚至每一个作业是等待的作业,历史将是重要塔斯一个很好的跟踪KS。它支持国际化。
其他提示
看到的TimerTask和定时器 - 两者都在该版本的JDK
Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
将其设置为在一天内为您的延迟运行,你要那么毫秒数的第一次约会。
是否有可能为你使用一个库如 cron4j ?它将使您的工作更加容易!
- Java 定时器可以按时间间隔、预先固定的时间等运行任意作业。
- 石英 图书馆
- 如果你真的想简单地了解它,请将其包装在 shell 脚本中并放入 cron 中。
或许,近期后可以帮助你:
我对这个问题的反应是使用内置的基于java.util.Time和java.util.TimerTask中的类实现一个java: 这是否会暂停我的Java线程一分钟?
或者,你可以使用* nix平台crontab的服务(适用于Windows平台太)。这是定期运行一个独立工作的最简单,重量轻的风格。
[]的,
和过去的