我们正在为我们的服务创建一个计划程序,该计划程序在每个特定的时间段(未确定,可能是 20-30 分钟)运行来扫描数据库。我们的应用程序位于带有 .Net Core 的 Amazon Linux 中。
我们想要使用AWS EventBridge Scheduler,它需要为EventBridge Schduler设置一个目标,我们想要使用lambda函数,但是lambda函数有15分钟的时间限制。随着数据的增长,数据库任务可能会超过15分钟,我们不希望AWS强行停止任务。 Python编写的lambda函数(无论python还是net core)。
问题是,
非常感谢您的帮助!
以下是一些注意事项和选项:
->解耦API调用和数据库任务:
->AWS Step Functions 非常适合管理涉及多个步骤且具有长时间运行任务的工作流程。您可以创建一个 Step Function 来协调不同 Lambda 函数的执行,从而允许超过 15 分钟的总执行时间。
->批处理:
如果您的数据库任务涉及处理大量数据, 考虑使用 AWS Batch。
AWS Batch 专为运行大规模并行批处理计算工作负载而设计。
->ECS/Fargate:
->EC2 上的 Linux Cron:
->EventBridge 触发外部系统的规则:
->数据库作业调度程序:
选择最适合您的应用程序架构、部署首选项和操作功能的选项。 使用 Step Functions 或批处理可能非常适合您的场景,使您能够协调和管理长时间运行的任务。