【发布时间】:2020-02-09 15:50:43
【问题描述】:
我正在尝试创建一个类似的应用程序,如本文https://devcenter.heroku.com/articles/scheduled-jobs-custom-clock-processes-java-quartz-rabbitmq 在 Heroku 上建议的此处提到的应用程序 https://github.com/heroku/devcenter-java-quartz-rabbitmq。
唯一的区别是目前我有一个web 应用程序什么都不做("Hello World")和一个scheduler 应用程序打印当前时间。
不幸的是,在我没有使用该应用程序的 30 分钟后,web 和 scheduler 都停止工作:
2020-02-09T15:20:17.911457+00:00 app[scheduler.1]: 15:20:17.911 [SpringContextShutdownHook] INFO o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
2020-02-09T15:20:18.151399+00:00 app[web.1]: 15:20:18.151 [SpringContextShutdownHook] INFO org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
2020-02-09T15:20:18.151689+00:00 app[web.1]: 15:20:18.151 [SpringContextShutdownHook] INFO o.s.s.quartz.SchedulerFactoryBean - Shutting down Quartz Scheduler
2020-02-09T15:20:18.151775+00:00 app[web.1]: 15:20:18.151 [SpringContextShutdownHook] INFO org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
2020-02-09T15:20:18.151840+00:00 app[web.1]: 15:20:18.151 [SpringContextShutdownHook] INFO org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
2020-02-09T15:20:18.152244+00:00 app[web.1]: 15:20:18.152 [SpringContextShutdownHook] INFO org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
2020-02-09T15:20:18.152871+00:00 app[web.1]: 15:20:18.152 [SpringContextShutdownHook] INFO o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
2020-02-09T15:20:18.135436+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-02-09T15:20:18.247822+00:00 heroku[web.1]: Process exited with status 143
2020-02-09T15:20:18.123889+00:00 heroku[scheduler.1]: Process exited with status 143
Procfile 非常简单:
web: java $JAVA_OPTS -Dserver.port=$PORT -jar target/*.jar
scheduler: java $JAVA_OPTS -cp target/*.jar -Dloader.main=algotrading.app.scheduler.SchedulerApp org.springframework.boot.loader.PropertiesLauncher
我在示例中遗漏了什么吗? 问候 回复
【问题讨论】:
-
嗨@codefinger,是的,但在我看来,该帖子中提到的关于
workerdynos 的例外情况应该适用于schedulerdynos...否则它是一个损坏的功能...编辑后我看到你为 Heroku 工作:所以回顾一下,我是否需要购买一个 Hobby dyno 来让调度器 dyno 一整天都按预期工作?谢谢 -
我尝试将
SchedulerApp配置为worker,但它还是停止了......所以我想知道下面这句话是否属实:Worker dynos do not sleep, because they do not respond to web requests. Be mindful of this as they may run 24/7 and consume from your pool of hours -
您在日志中看到工作人员/调度程序的 SIGTERM 吗?
-
嗨@codefinger,谢谢。是的,我可以看到:
Stopping all processes with SIGTERM后跟Process exited with status 143用于两个测功机(web和worker)
标签: java heroku quartz-scheduler