【问题标题】:multiple playframwork applications run scheduled task multiple times多个 playframework 应用程序多次运行计划任务
【发布时间】:2018-10-15 21:40:51
【问题描述】:

我的项目使用 playframework 并每 5 分钟运行一次计划任务。只有一个应用程序时,它可以正常工作。

但是,当我使用 nginx 配置 2 个播放应用程序时。两个 2 播放应用程序都运行计划任务。

如何在这2个play应用中只运行一个定时任务?

【问题讨论】:

    标签: playframework playframework-2.2 playframework-2.3


    【解决方案1】:

    我看到了这个问题的三个解决方案:

    • 使用外部服务进行调度(如 cron 选项卡)。每 5 分钟,外部服务调用您应用程序的私有端点,一个应用程序将运行该任务

    • 使用外部数据库(如 sql 数据库、zookeeper...)拥有一个分布式锁,其中只有一个应用程序可以在给定时间获取锁。当另一个试图获取锁来运行任务时,任务被中止,因为锁已经被占用了。

    • 使用 akka 集群功能创建分布式调度程序。为此,您可以使用分片功能,这样只有一个节点会处理作业消息。

    根据您已经使用的内容,前两种解决方案可能更易于实施。使用 akka,您可能需要潜入很多新事物才能实现这一目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-15
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 2014-06-19
      • 2021-09-17
      相关资源
      最近更新 更多