如何定期检查病情直至病情过去或持续时间

时间:2019-06-09 04:13:18

标签: spring-boot scheduled-tasks spring-scheduled

我们的spring-boot应用程序收到一条更新资源的通知,并且首先需要检查资源是否可更新,即已被另一个线程锁定以进行更新(锁定线程会在任务完成后将其解锁)。

一旦收到事件/通知以更新资源,就必须开始对资源的检查,检查应在固定的时间间隔(例如100毫秒)内进行,直到超时为止。

  • 线程收到更新资源的通知。
  • 首先检查资源是否尚未锁定更新
  • 如果资源已锁定,则线程需要定期再次检查,直到设置了超时时间为止。
  • 如果再次检查发现资源已解锁,则线程会将其标记为已锁定并开始更新。

我们使用Awaitility进行了测试,但这是一个以测试为重点的实用程序,例如在下面

await().atMost(1, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS).until(future::isDone);

Executor服务或调度程序服务是更好的方法吗?

如果这样的话,样本将非常有用。

0 个答案:

没有答案