我有一个Java EE应用程序,每十五分钟从互联网上下载股票价格.从计时精度的角度来看,最好是应用程序内化这个周期性操作,即将Thread.sleep()与计数器结合使用或设置计时器或者通过URL公开任务并拥有平台cron会更好作业定期点击URL(按照要求的频率).
这两种方法的优点和缺点是什么?
我看到针对OpenJDK实现报告的计时器错误让我感到震惊.该错误表明,系统时间的变化会影响与时间相关的操作和方法(如睡眠和计时器周期性)的操作.
最佳答案
绝对考虑使用为任务构建的调度作业.尝试从任何时序考虑中分离任务本身.
>正如所建议的那样,Quartz是一个不错的选择.
> Cron也不错,但需要更多设置才能与您的设备集成
任务.
>如果在Java EE上,您可以使用EJB计时器.
>您可以使用ScheduledExecutorService自行推送(不推荐)