在 AWS ECS 中运行 cronjob 的最佳方式是什么?

Siv*_*aji 5 php scheduled-task cron amazon-web-services amazon-ecs

我有一个由 Laravel 提供支持的 Web 应用程序,该应用程序设置在 AWS ECS 上。我需要将 artisan 命令作为 cronjob 运行。

我正在查看 ECS 集群配置中的“计划任务”。我可以按照 AWS 上的“计划任务 (Cron) ”文档启动新任务。我在目标中使用 Laravel 的任务定义,我将其用于 Web 服务,它有两个任务。

  1. 不知道如何调用 artisan 命令
  2. 计划任务似乎永远运行

任何帮助将不胜感激。谢谢。

MLu*_*MLu 7

我不熟悉 Laravel 或 Artisan,但本质上你需要:

  1. 用你的工作创建一个容器镜像artisan
  2. 创建一个任务定义,在调用时运行artisan容器
  3. 创建 cron 调度程序来调用上述任务定义

关于“计划的任务似乎永远运行” - ECS 任务完成其工作并退出并且不会重新启动(例如 cron 作业)。ECS 服务退出时会重新启动(例如Web 服务器)。确保您创建的是Task而不是Service。那么它应该永远运行。

希望有帮助:)