Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建在不同时间重复的Java计时器_Java_Timer - Fatal编程技术网

如何创建在不同时间重复的Java计时器

如何创建在不同时间重复的Java计时器,java,timer,Java,Timer,我有一些股市数据。我想模拟股票市场,让价格以交易发生时间确定的时间间隔发送 最好的方法是什么 到目前为止,我有一个带有静态变量和方法的类,在这个类中,我存储了上一次交易时间的小时、分钟、毫秒。然后,我使用当前交易的交易时间,并根据存储的上次交易值进行计算 然后,我将时间间隔作为静态成员变量存储在与存储时间变量相同的类中(以毫秒为单位) 我用这句话: timer.schedule(new RemindTask(), TimeStore.getNextInterval()); 其中TimeStor

我有一些股市数据。我想模拟股票市场,让价格以交易发生时间确定的时间间隔发送

最好的方法是什么

到目前为止,我有一个带有静态变量和方法的类,在这个类中,我存储了上一次交易时间的小时、分钟、毫秒。然后,我使用当前交易的交易时间,并根据存储的上次交易值进行计算

然后,我将时间间隔作为静态成员变量存储在与存储时间变量相同的类中(以毫秒为单位)

我用这句话:

timer.schedule(new RemindTask(), TimeStore.getNextInterval());
其中TimeStore.getNextInterval检索计算的间隔

你能想出一个更好的方法吗?这似乎不起作用,也不太优雅

从链接页面:

Quartz是一个功能齐全的开源作业调度系统,可以与任何J2EE或J2SE应用程序集成,或与之一起使用,从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十个、数百个甚至数万个作业;任务定义为标准Java组件或EJB的作业。Quartz调度器包括许多企业级功能,如JTA事务和集群


如果您不想使用Quartz,那么看看Java的ScheduledExecutorService


对于你的任务,我有一个不同的解决方案。 您可以使用javax.swing.Timer代替java.util.Timer; 然后,您可以通过发送您想要的延迟和actionListeners的null来调用构造函数,然后您可以添加和添加actionListeners此操作并覆盖您的任务执行的操作。在javax.swing.Timer中,actionListeners会在选定的时间间隔内重复收到通知