首页 > 解决方案 > 在 aws 实例上运行 rake 任务

问题描述

我在 AWS 实例中运行 take 任务时遇到问题。该实例具有自动缩放/负载均衡器配置,当它达到某些预定义的限制时会创建一个新实例。

rails 项目有一个 rake 任务,每晚都会进行大量数据库插入/更新。

但是,当该 rake 任务正在执行时,自动缩放功能会创建一个新实例,并且正在运行该任务的进程会丢失。

为了解决这个问题,我可以做出任何解决方案吗?

问题是:每次 aws 从自动缩放配置启动新实例时,都不会丢失任务运行过程。

谢谢。

标签: ruby-on-railsamazon-ec2

解决方案


您可以尝试一些选项,具体取决于您的应用程序设计:

  1. 在不属于自动缩放组的单独实例上运行任务,并且您可以根据需要启动(可能在 docker 中?)。
  2. 重新设计要分发的任务,以便新实例无关紧要。
  3. 安排组的预缩放,以便在开始 rake 任务之前添加所需的实例。 https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html#recurrence-schedule-cron

推荐阅读