我正在使用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中为此目的添加单个依赖项来找到这样做的方法
答案 0 :(得分:1)
您可以使用Spring Framework。
这样的事情:
@Scheduled(cron = "0 0 12 1 1/1 ? *")
public void doScheduledWork() {
答案 1 :(得分:0)
当应用程序部署在多个盒子或多个pod中时(如果是kubernetes),那么在每个pod中都会设置cron表达式。
这导致cron被触发n(pod数)次,导致错误情况。更好的选择是通过调用api从外部整体配置系统调用cron。
如果应用程序仅在一个盒子(纯整体)中运行,那么在带有注释的方法上应用是合适的。