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

Spring BootRestAPI调度程序不工作在Heroku

隗翰海
2023-03-14

我已经在Heroku Free Tier上部署了Spring Boot Rest Api后端。该应用程序有一个计划的方法,应该每天下午12点运行一次。我知道Heroku自由层Dyno在30分钟不活动后睡觉。因此,除非dyno处于活动状态,否则特定的方法不会运行。我已经确认,当Dyno处于活动状态时,该方法按照它应该的方式运行。我做了一点研究,在这里找到了一些相关的答案:

https://stackoverflow.com/a/69683216/13687634

答案是:“定义一个逻辑,每30分钟调用一次应用程序自己的endpoint。调度程序将在应用程序启动时开始工作。因此,您将保证应用程序始终运行。”关于这一点,我有几个问题:

  1. 到底什么样的逻辑才是所谓的终点?我认为在随机控制器方法上使用Cron进行Spring Boot调度不是正确的方法
  2. Heroku提供了自己的免费调度器,但它不保证调度器会运行。所以我正在寻找在Api中解决这个问题的方法。任何帮助都将不胜感激

共有1个答案

卢杰
2023-03-14

您可以开发一个简单的RESTendpoint,如/ping/heath-check来获取状态。

样品

@RestController
public class PingRestController {

  @RequestMapping(method = RequestMethod.GET, path = "/api/ping")
  public ResponseEntity<String> getPing() {
    return ResponseEntity.ok("OK");
  }
}

由于Spring Boot已经exactor支持健康指标,您也可以调用它来检查状态。实例

我相信您可能已经配置了调度程序。如果没有,那么你可以参考链接

 类似资料:
  • 我有这些文件,不知怎么的,当我分派一些东西时,它总是返回reducer的默认大小写。 这是我第一次使用Redux/Thunk,我正在学习本教程:https://www.youtube.com/watch?v=nrg7zhgjd4w,当他使用它时,它起作用了。 请看一下我的代码: 反应组分: 操作文件: 减速器: 和我的商店: 从“redux”导入{applyMiddleware,createSto

  • 有谁能在这一期给我提点建议吗? 提前感谢您宝贵的时间!!

  • 我试图向fullcalendar scheduler 5.8添加工具提示,但未能实现此功能。 在fullcalendar调度程序模板中,我添加了“工具提示”和“popper”库以及CSS,它们可以处理简单的fullcalendar,但没有结果。我的模板起点是https://fullcalendar.io/docs/event-tooltip-demo 工具提示模板示例图像 在Javascript代

  • 我正在使用spring-boot-starter-quartz2.2.1.release来调度Quartz作业,并且我已经在两个节点上部署了我的代码。而quartz.properties是这样的: 如果我发出了查询所有作业的请求,那么该请求可能会被发送到node1,并且只显示node1的作业。但我想同时显示node1和Node2的作业。 如果我发出了更新scanJobbyMachine1的请求,并

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