amazon-ecs - AWS ECS。如何确保只有一个任务实例正在运行?
问题描述
我想设置一个 ECS 任务来安排各种其他应用程序任务。
此任务将安排的“任务”主要涉及在另一个负载平衡服务中调用 restful 端点。
我知道还有其他方法可以做到这一点,使用 cloudwatch 触发 lambda 等。但是这对于我需要的东西来说似乎过于复杂。
我打算只用一个 crontab 制作一个非常简单、轻量级的基于 apline 的图像来触发 restful 调用。
这一切似乎都很容易。我唯一担心的是,我想尽可能地阻止这个任务的多个实例运行,即使只是很短的一段时间。
如果我的 CI/CD 管道触发了对这个 cron 任务的更新,那么可能会有一小段时间,新旧任务将同时运行。
因此,一个 cron 任务被触发两次的可能性很小。
我想做的是让 ECS 在尝试启动新任务之前完全停止当前正在运行的任务。
这似乎与它想要的正常工作方式背道而驰,在这种方式下,它将确保新任务已启动,并且在停止旧任务之前是健康的。
这可能吗,如果可以,我该如何配置?
如果我的 crons 有一段时间没有运行,这不是问题,但如果任何一个被多次触发,这可能是一个问题。
解决方案
而不是使用 ECS 服务(确保特定数量的任务始终运行并通过滚动或 B/G 部署策略进行部署,这不是您想要的) - 如何使用 StopTask 和 RunTask api 来控制任务何时停止和启动- 让您完全控制。
推荐阅读
- linux - 源子中的父脚本名称
- wordpress - 在 Woocommerce 产品属性中保存 URL
- flutter - 将 DraggableScrollableSheet 添加到 Sliver 页面的底部
- excel - Excel VBA多次重复3行相同的值
- c++ - 在 C++ 中检查枚举变量的无效值
- lumen - 找不到路由时的 Lumen API 自定义错误消息
- python - django python - 如何列出列表的渐进数值
- c# - MediaPlayer 和 RenderTargetBitmap 从视频中获取帧图像的问题
- jsf - 如何使用带有自定义或“无”主题的 PrimeIcons
- visual-studio - docker compose 环境变量中的点符号不起作用