docker 容器应用环境中批处理作业的调度执行

dfddblmv  于 2022-12-03  发布在  Docker
关注(0)|答案(3)|浏览(170)

我开始使用Azure中的容器应用程序,并迁移到容器驱动的环境中进行部署。
目前,我们有许多以多种语言(Java、Python、PHP等)编写的程序,这些程序是按循环计划执行的。这些循环作业将查询外部系统的订单、产品库存和其他信息。然后,它们将这些信息传递到服务器,该服务器也将在容器应用程序环境中运行。最多应该有1个此应用程序的示例正在运行。
但是,我在容器应用中没有看到任何调度功能。这是不是在Azure生态系统中的其他地方处理得更好?

6uxekuva

6uxekuva1#

您可以使用
1.普通旧版虚拟机上的常规cron作业

  1. Kubernetes上的Cron作业
    1.使用CI系统运行定期作业,例如gitlab或github操作
    AWS定期提供触发lambda-Azure可能也有类似的功能
wztqucjr

wztqucjr2#

一个可能的解决方案是使用azure函数@Schedule,该函数使用cron格式。
通过调整您的Java、Python、PHP等代码以适应Azure函数:
请参阅microsoft doc on @schedule
function getting started
示例来自文档:

@FunctionName("keepAlive")
public void keepAlive(
  @TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
      ExecutionContext context
 ) {
     // timeInfo is a JSON string, you can deserialize it to an object using your favorite JSON library
     context.getLogger().info("Timer is triggered: " + timerInfo);
}
lnvxswe2

lnvxswe23#

你可以使用Dapr与ACA,它支持Cron作业,应该满足你的需求,如果你愿意启用Dapr.我有一个详细的职位关于它https://bitoftech.net/2022/09/05/azure-container-apps-with-dapr-bindings-building-block/

相关问题