[英]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一样,一旦我运行它就会继续运行?
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.