在 Heroku 上托管应用程序时,我经常通过代码中的 Heroku API 触发一次性 dynos,以便在后台执行繁重的工作。我最近在 AWS 上设置了一些堆栈,并通过使用 AWS ECS 运行任务遵循了类似的模式。
我没有为此使用长时间运行的队列工作程序,因为硬件资源根据特定任务而有很大差异,并且通常工作负载出现在高峰期。
对于本地开发,我通常通过在正在运行的容器中执行后台任务或从控制台手动触发后台命令来跳过这个主题。什么是在本地运行一次性容器的好方法?
最佳答案
ECS 支持计划任务,如果您知道计划高峰的时间,您可以使用计划任务按计划启动 Fargate 容器。
如果您不这样做,我们所做的是编写一个小型 API Gateway -> Lambda 函数,该函数基本上动态启动 Fargate 容器,其中包含一些在 POST 中定义的变量到 API Gateway 端点,如 CPU/Mem/port 等。 . 或者预先创建任务定义并将任务定义传递给 api,如果您知道容器的大部分“设置”应该是什么,这是另一种选择。
关于docker - 如何在本地运行一次性 Docker 容器(从容器内触发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482465/