如何为 vertx 设置一个持久的计时器,如果服务器重新启动就不会丢失?

问题描述

如何设置一个函数在 72 小时后运行,服务器可能在这 72 小时内重新启动,但计时器应该在重新启动后恢复。 vertx 或 java 中是否有任何计时器可以使这成为可能。

解决方法

a.) 使用数据库

  1. 存储上次执行时间戳
  2. 定期检查时间戳是否早于 72 小时
  3. 如果是,请执行您的任务并更新时间戳

b.) 在集群模式下运行 vertx

  • 在共享地图中保存上次执行时间戳
  • 每个实例都可以访问它以查看何时需要执行任务
  • 当一个实例重新启动时,共享地图仍然没有丢失
  • 为确保单次执行,请使用分布式锁

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...