Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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 如何为vertx设置一个持久计时器,如果服务器重新启动,它不会丢失?_Java_Timer_Vert.x_Persistent - Fatal编程技术网

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

Java 如何为vertx设置一个持久计时器,如果服务器重新启动,它不会丢失?,java,timer,vert.x,persistent,Java,Timer,Vert.x,Persistent,如何将函数设置为在72小时后运行,服务器可能在这72小时内重新启动,但计时器应在重新启动后恢复。vertx或java中是否有计时器使之成为可能。a.)使用数据库 存储上次执行时间戳 定期检查时间戳是否早于72小时 如果是,则执行任务并更新时间戳 b、 )以群集模式运行vertx 将上次执行时间戳保存在sharedmap中 每个实例都可以访问它,以查看何时需要执行任务 当一个实例重新启动时,共享映射仍不会丢失 要确保单次执行,请使用分布式锁

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

a.)使用数据库

  • 存储上次执行时间戳
  • 定期检查时间戳是否早于72小时
  • 如果是,则执行任务并更新时间戳
  • b、 )以群集模式运行vertx

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