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

Spring Boot,在Heroku自由计划上执行预定方法

黄和怡
2023-03-14

你好,我有我的Spring Boot应用程序部署在Heroku免费计划,这里的主要限制是应用程序空闲时没有使用,这是这个话题的线索。

假设我想要一个带有@Scheduled注释的代码在每天凌晨3点执行,但很可能我的应用程序此时处于空闲/睡眠状态。问题是,这个方法是否会运行,并不知何故知道它需要从睡眠中醒来,并在特定时间运行一个方法?

如果没有,你会建议什么解决方法?

提前谢谢!

共有1个答案

艾昊明
2023-03-14

您的应用程序将在凌晨3点处于空闲状态(假设没有交互且应用程序处于空闲状态)。那么计划的代码就根本不运行了。

据我记忆所及,如果没有与应用程序交互,应用程序将在30分钟后空闲(根据heroku的免费计划)。

我假设您的spring boot应用程序有一个endpoint。因此,定义一个逻辑,每30分钟调用一次应用程序自己的endpoint。当应用程序启动时,调度程序将开始工作。因此,您可以保证应用程序始终运行。

 类似资料:
  • 我用SpringBoot创建了一个简单的演示应用程序,其中包括执行器。带有@Scheduled注释的任务显示在执行器中,但以编程方式启动的任务不会显示。有没有办法让他们也出现? 我已经注释了@Enable调度。 我的组件如下所示: 执行器的结果仅显示带注释的任务:

  • 本文向大家介绍Linux用户自定义at、cron计划任务执行的方法,包括了Linux用户自定义at、cron计划任务执行的方法的使用技巧和注意事项,需要的朋友参考一下 Linux系统中有两种计划任务,一种是只会执行一次 at 计划任务,一种是可以周期性地执行的 cron 计划任务 at 一次性计划任务 描述 在指定的时间执行特定命令(单次),也称为延时动作任务。 用法 参数 实例 首先查看系统时间

  • 当我试图在heroku上部署springboot应用程序时,出现了以下错误: 无法执行目标org.apache.Maven.plugins:maven-compiler-plugin:3.8.1:在项目后端编译(default-compile):错误编译:无效的目标版本:11->[Help 1]Remote:[error]Remote:[error]要查看错误的全部堆栈跟踪,请使用-e开关重新运行

  • 我在java中遇到了ScheduledExecutorService的问题(几天前我没有遇到这个问题,这让我觉得很奇怪)。请找到下面的代码和控制台输出。重复执行任务之间的延迟是1毫秒,所以理想情况下我应该达到每秒1000的计数(几毫秒),但这只是没有发生。请帮帮忙.. 代码: 控制台输出 1000-2013年3月13日14:43:54.477 200-2013年3月13日14:44:10.296

  • 本文向大家介绍SpringBoot执行定时任务@Scheduled的方法,包括了SpringBoot执行定时任务@Scheduled的方法的使用技巧和注意事项,需要的朋友参考一下 在做项目时,需要一个定时任务来接收数据存入数据库,后端再写一个接口来提供该该数据的最新的那一条。 数据保持最新:设计字段sign的值(0,1)来设定是否最新 定时任务插入数据:首先进行更新,将所有为1即新数据设置过期,然

  • 问题内容: 我有一个.sql文件,其中包含一堆要在heroku上的postgres数据库上执行的插入命令。但我不知道该怎么做: 如果我有权访问postgres控制台,请输入以下内容: 但似乎heroku不支持此命令。我尝试过 但这不能让我输入文件。 还有其他选择吗? 问题答案: 对于种子数据库之类的事情,我推荐理查德·布朗(Richard Brown)的答案:可以说,最好使用Rails种子机制之类