【问题标题】:Scheduled Task Produces Too Many Tasks计划任务产生太多任务
【发布时间】:2019-01-04 02:59:51
【问题描述】:

在我的一个 ECS 集群中,我有一个计划的 Fargate 任务,该任务旨在启动给定目标的 8 个实例。但是,当任务执行时,它会启动 waaayyyy 超过 8 个任务。有时多达 50 个。有谁知道导致这种情况发生的原因是什么?

详情:

  • Cron 表达式:cron(40 16 ? * 1-5 *)
  • 目标定义:

【问题讨论】:

  • 好吧,我只是在验证您的 cron 表达式,我发现“?”只能为 Day-of-Month 或 Day-of-Week 指定,并且您的 cron 表达式无效,因为您已经应用了一个小时,这可能是个问题吗?
  • 这不是用于计划任务的“真正的”cron 表达式。这是亚马逊想出的一些混蛋。在此处格式化:cron(Minutes Hours Day-of-month Month Day-of-week Year)。不过感谢您的尝试。

标签: amazon-web-services amazon-ecs


【解决方案1】:

对于将来可能遇到此问题的任何人:

出现此问题是因为我们有太多任务运行集群。在撰写此答案时,AWS 限制在单个集群中运行 50 个任务。在规则触发之前,已经有近 50 个任务正在运行。该规则将触发并开始启动新任务以尝试达到所需的数字 (8)。

但是,由于限制,它永远无法获得 8 个,因为超过限制的新任务将被关闭。所以它会继续尝试,继续尝试,继续尝试启动任务,这导致存在一个巨大的待处理任务队列,这些任务似乎会(几乎)将我们所有的任务推出集群,而我们将只剩下比我们要求的要多得多。

解决方案:我们只是将计划任务移到一个新集群中,以避免 50 个任务的限制。

【讨论】:

    猜你喜欢
    • 2016-10-03
    • 1970-01-01
    • 2020-12-19
    • 2011-05-22
    • 2011-01-22
    • 2019-06-06
    • 2021-11-06
    • 2011-12-08
    • 2011-01-02
    相关资源
    最近更新 更多