【问题标题】:How to avoid multiple scheduled tasks running in parallel如何避免多个计划任务并行运行
【发布时间】:2020-02-04 09:01:31
【问题描述】:

我正在构建一个使用 Kubernetes 作为容器编排器的微服务应用程序。该应用程序现已启动并运行,但我还有其他问题。那是在我的服务中,我有一个每天运行的计划任务,当服务部署时,多个服务实例将运行(通过设置副本号),这会创建同时运行的多个任务。 我期望的是只有一个服务任务实例将运行而不是多个。有什么技术可以处理这种情况吗?

技术栈

  1. Kubernetes
  2. Asp.net core搭建微服务
  3. CI/CD 的基础实施
  4. 制造
  5. Traefik 作为负载平衡器

请帮帮我,谢谢!

【问题讨论】:

    标签: docker kubernetes scheduled-tasks microservices


    【解决方案1】:

    你有两种方法解决这个问题:

    1) 在您的应用程序中使用任务协调。就像有一个锁,只有拥有锁的应用程序才能运行任务。查看ZooKeeper 了解分布式锁逻辑。这是首选的解决方案。

    2) 使用每天运行的 Kubernetes CronJob。

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多