- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个系统需要以一定的时间间隔触发
如果给出以下内容:
minutes:25, seconds:10
然后,它应该在每小时 25 分 10 秒触发。例如,7:25:10、8:25:10、9:25:10 等等。
这很简单,而且我已经让该代码可以工作了。问题是它只有在系统每秒至少检查一次时才有效,否则会错过触发。
那么如何检查自上次检查以来触发单位是否与当前时间单位匹配?检查之间的时间会有很大差异。
触发单元的存储方式如下:
// units that must match the current time <Calendar Unit, Trigger>
private Map<Integer, Integer> triggerUnits;
最佳答案
首先移动到枚举而不是映射。枚举可以包含小时、秒、日等。好消息是,这样的枚举已经存在于 JDK 中,称为 TimeUnit。该枚举的每个成员都知道将时间转换为其他单位。
因此,解析字符串hour:5
。将 5 小时转换为 3600*5*1000 毫秒。该值将在您的系统中使用。您有多种可能性,但我建议您从 java.util.Timer
开始。每个任务都可以在计时器中安排。它使用一个线程来执行所有任务。
如果您愿意,可以使用 Executors 框架:
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.schedule(...);
这里的schedule
方法直接使用时间单位。您甚至不必从一种单位翻译成另一种单位。
关于java - 检查自上次检查以来是否已经过去了具有匹配单位的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706033/
之前看到一些类似的问题,想弄清楚。 在this article ,据说异步调用“没有线程”。 然而,in another one ,据说 Here, however, we’re running th
我为我公司的平板电脑(SAMSUNG Galaxy Tab Active2)开发了一个简单的软件,自上周五(2018 年 11 月 23 日)以来,它无法正常工作。我检查了该应用程序的所有功能,其中有
我正在使用 hadoop map-reduce 作业进行一些文本处理。我的工作已完成 99.2%,并停留在上一个 map 工作上。 map 输出的最后几行如下所示。上次发生此问题时,我尝试打印出从 m
上次 Ubuntu 更新后有人对 Docker 有疑问吗?我有 2 个由 docker-compose 在 ubuntu18.04 中运行的项目。两个项目都运行良好,但在 *.yml 中进行 0 次更
SQL Developer 在表中显示公共(public)同义词的创建和上次 DDL 时间: CREATED 15-AUG-09 LAST_DDL_TIME 15-AUG-09 O
我正在使用带有以下插件的 mavenized 库项目: com.jayway.maven.plugins.android.generation2
我正在使用 Jssor Slider 作为轮播。在 Google Chrome 上次更新到版本 45.0.2454.85 之前,它一直运行良好。想法是它不显示图像。目前,它们位于标签中,可在 Safa
我是一名优秀的程序员,十分优秀!