Cron作业调用HTTP restful api

时间:2016-12-20 14:45:50

标签: java maven jboss cron

我正在使用J2EE和Jboss服务器。我试图找到一种方法来每月在我的代码中调用sendEmail api。

@GET
@Path("/sendEmail")
@Transactional
public String test(){

我想调用这个可以使用网络浏览器http://localhost:8181/api/calc/sendEmail

访问的测试API

我找到了一些方法: https://cloud.google.com/appengine/docs/java/config/cron https://www.mkyong.com/java/how-to-run-a-task-periodically-in-java/

使用cron job看起来很直观,但我发现很难搜索资源以找到一种方法来安排使用它来调用API。

请指出一些资源,我可以通过在pom.xml中为此目的添加单个依赖项来找到这样做的方法

2 个答案:

答案 0 :(得分:1)

您可以使用Spring Framework。

这样的事情:

@Scheduled(cron = "0 0 12 1 1/1 ? *")
public void doScheduledWork() {

检查以下链接:Spring cron expression for every day 1:01:am

答案 1 :(得分:0)

当应用程序部署在多个盒子或多个pod中时(如果是kubernetes),那么在每个pod中都会设置cron表达式。

这导致cron被触发n(pod数)次,导致错误情况。更好的选择是通过调用api从外部整体配置系统调用cron。

如果应用程序仅在一个盒子(纯整体)中运行,那么在带有注释的方法上应用是合适的。