当前位置: 首页 > 知识库问答 >
问题:

调用HTTP restful api的Cron作业

方心思
2023-03-14

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

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

我想调用这个可以使用web浏览器访问的测试apihttp://localhost:8181/api/calc/sendEmail

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

使用cron作业看起来很直观,但我发现很难搜索资源以找到使用它调度API调用的方法

请指出一些资源,我可以通过在pom中添加单个依赖项来找到一种方法.xml

共有2个答案

岑畅
2023-03-14

当应用程序部署在多个盒子或多个pod中(对于kubernetes)时,在每个pod中设置cron表达式。

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

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

颜志学
2023-03-14

您可以为此使用Spring Framework。

像这样:

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

检查以下链接: 每天的Spring cron 表达式 1:01:am

 类似资料:
  • 我有一个webapp在Kubernetes集群的Docker-container中运行。该应用程序有一个endpoint,我想定期调用。应用程序在多个节点/吊舱上运行,重要的是只有一个节点执行endpoint发起的任务。我查看了Kubernetes Cron作业,但没有找到任何关于从Kubernetes Cron作业调用endpoint的文档。有人对解决这个问题有什么建议吗?在只有一个节点执行任务

  • 我有两个要求。 每周一触发作业 对于第一个要求,我尝试了和。他们俩都不工作。该函数未被调用。 对于第二个要求,我尝试了和。我得到下面的错误。 原因:java。lang.IllegalStateException:遇到无效的@Scheduled方法“monthlyData”:用于输入字符串:“2#1”。

  • 问题内容: 我有这样的计划工作: 如果我在终端中运行它,它将运行,但是什么也不输出。如果我传递了错误的方法名称,它将成功运行。如果我传递了错误的类名,则会输出网站404错误。 我也有一个将“ en”添加到URL中的路由,例如 这可能是问题吗? 我的config.php设置是: 问题答案: 通过CLI(命令行界面)为cron- jobs准备CodeIgniter 2.x的步骤: 1: 创建根文件的副

  • 我正在研究如何在RedHat OpenShift上运行Spring Batch作业作为Kubernetes计划作业。步骤已经完成, 1) 创建了一个示例 Spring Batch 应用程序,该应用程序读取一个执行简单处理的 .csv 文件并将一些数据放入内存中的 h2 数据库中。作业启动器作为 REST 终结点 (/load) 调用。源代码可以在这里找到。有关endpoint信息,请参阅自述文件。

  • 我希望每天早上9点完成一项任务。我得到了一些有趣的结果。目前我的工作是这样的: 这是怎么回事?这是正确的表达吗?