定期执行java程序

定期执行java程序,java,multithreading,threadpool,runnable,Java,Multithreading,Threadpool,Runnable,我是一名编程新手,只掌握Java的基本概念。我需要一个学校项目的解决方案,定期执行一个Java程序(类)(假设每6小时一次)并从中收集数据。Java程序是一个客户端,它每5分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是Thread()和Runnable(),但正如我所说的,我只有Java的基本概念,我不知道怎么做。解决方案也必须是Java。如果有人有任何想法,非常感谢您的帮助,谢谢 对不起,我的英语不好 您有两个选择: 手动编程 定义一个(由提议的) 石英晶体触发器 检查

我是一名编程新手,只掌握Java的基本概念。我需要一个学校项目的解决方案,定期执行一个Java程序(类)(假设每6小时一次)并从中收集数据。Java程序是一个客户端,它每5分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是
Thread()
Runnable()
,但正如我所说的,我只有Java的基本概念,我不知道怎么做。解决方案也必须是Java。如果有人有任何想法,非常感谢您的帮助,谢谢 对不起,我的英语不好

您有两个选择:

  • 手动编程
  • 定义一个(由提议的)
石英晶体触发器
检查文档。()

00:00
6:00
12:00
18:00
小时执行:

0 0 0/6/12/18 * * ?
每5分钟执行一次

0 0/5 * * * ?   
定时器
定义一个线程,该线程在每次启动进程时检查一次:

int SIX_HOURS = 1000 * 60 * 60 * 6;
Timer timer = new Timer(); 
timer.schedule( new TimerTask() 
{ 
    public void run() { 
    // do your work 
    } 
}, 0, SIX_HOURS);
延迟队列

我没有这方面的经验,但您可以找到示例,也有一个,您可以找到更多示例和。

您可以使用@dotvav之类的调度库,这取决于他的项目的复杂性,quartz可能是一个过火的工具。“他可以先看一看更简单的解决方案。”斯瓦普尼尔说,这句话纯粹是一种反射。小项目/任务可能使用更简单的方法。谢谢您的帮助,我将尝试解决方案,然后更新。您也可以使用。@OldCurmudgeon更新了更多信息,你知道其他一些很好的教程或例子吗?<代码> DelayQueue <代码>?很抱歉耽搁了——我遇到了一些麻烦。请看一个示例<代码> DelayQueue < /代码>。Hi @ Gon,这是你的第一个问题,如果这个或任何答案已经解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。