繁体   English   中英

使用计划在Azure WebJob上运行Spring Boot应用程序

[英]Running a Spring Boot App on Azure WebJob with a Schedule

我有一个常规的Java / Spring Batch作业,该作业每天晚上运行,以从一个数据库中获取数据并在项目的数据库中进行插入/更新。 在将其部署在Tomcat上的当前设置中,这可以正常工作。

现在,我需要将其分离出来并在Azure WebJob上运行它。 有什么好的方法?

我可以为此目的使用Spring Boot吗? 但是我不确定它将如何工作。 我的意思是,我可以为我的项目(使用Spring Boot编写的作业)创建一个JAR,并将其复制到Azure WebJob上。 然后使用“ java -jar ...”创建一个批处理文件,但是:

  • 难道不像运行和部署带有内置Web服务器的Spring Boot App一样,一旦我运行它就会继续运行?
  • 其次,下次由Azure WebJob按照我设置的时间表执行该批处理文件时,它将尝试再次运行Spring Boot App,并且由于第一次运行该端口已在使用该端口,因此我可能会遇到绑定异常。

如果有人可以帮助我,将不胜感激。

谢谢。

难道不像运行和部署带有内置Web服务器的Spring Boot App一样,一旦我运行它就会继续运行?

Spring Boot应用程序可以是非Web应用程序,一个很好的例子是不依赖servlet容器的Spring Boot批处理应用程序。

您可以创建一个运行Spring Batch作业的Spring Boot应用程序,然后在作业完成时停止运行,而无需将其部署在(嵌入式)Tomcat中。 您可以在此处找到示例: https//spring.io/guides/gs/batch-processing/

其次,下次由Azure WebJob按照我设置的时间表执行该批处理文件时,它将尝试再次运行Spring Boot App,并且由于第一次运行该端口已在使用该端口,因此我可能会遇到绑定异常。

有了使用java -jar mybatchapp.jar来运行应用程序的脚本后,便可以使用Azure Scheduler在需要时运行作业。 由于您的批处理应用程序不包含/启动嵌入式servlet容器,因此不会出现端口冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM