java - 在 dropwizard 中的单独线程上进行作业调度
问题描述
我正在尝试在 java dropwizard 框架中创建一个作业调度程序。我找到dropwizard-sundial
并使用如下:我从https://github.com/knowm/dropwizard-sundial添加了配置。我的CronJob.class看起来像:
import org.knowm.sundial.Job;
import org.knowm.sundial.annotations.CronTrigger;
import org.knowm.sundial.exceptions.JobInterruptException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@CronTrigger(cron = ""* * * * * ? *"")
public class CronJob extends Job {
private static final Logger logger = LoggerFactory.getLogger(CronJob.class);
@Override
public void doRun() throws JobInterruptException {
logger.info("Hello from Cron Job");
}
}
当我运行该服务时,我可以看到Hello from Cron Job
每秒都在吐出。有什么方法可以让我在单独的线程上简单地运行 cronjob?我试图让类实现Runnable
如下:
public class CronJob extends Job implements Runnable{
....
}
但后来我得到了,
An error occured instantiating job to be executed. job= 'CronJob'
CronJob
编辑:我在为类创建自己的构造函数时也遇到了上述错误
INFO [2021-09-16 00:28:36,747] org.knowm.sundial.ee.SundialInitializerListener: Sundial Scheduler has been started...
ERROR [2021-09-16 00:28:36,755] org.quartz.ErrorLoggingScheduleListener: An error occured instantiating job to be executed. job= 'CronJob'
! java.lang.NoSuchMethodException: job.CronJob.<init>()
! at java.base/java.lang.Class.getConstructor0(Class.java:3349)
! at java.base/java.lang.Class.newInstance(Class.java:556)
! ... 3 common frames omitted
! Causing: java.lang.InstantiationException: job.CronJob
! at java.base/java.lang.Class.newInstance(Class.java:571)
! at org.quartz.jobs.SimpleJobFactory.newJob(SimpleJobFactory.java:47)
! ... 2 common frames omitted
! Causing: org.quartz.exceptions.SchedulerException: Problem instantiating class 'job.CronJob'
! at org.quartz.jobs.SimpleJobFactory.newJob(SimpleJobFactory.java:49)
! at org.quartz.core.JobRunShell.initialize(JobRunShell.java:113)
! at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:346)
INFO [2021-09-16 00:28:36,756] org.quartz.core.RAMJobStore: All triggers of Job CronJob set to ERROR state.
INFO [2021-09-16 00:28:37,441] io.dropwizard.jersey.DropwizardResourceConfig: The following paths were found for the configured resources:
解决方案
推荐阅读
- node.js - vscode 通过扩展提供指向 json schem 的链接
- javascript - 使用 rewire 存根独立的 module.exports 函数
- asp.net - 尝试将数据从excel文件填充到数据表时出现异常
- yosys - 使用带有 CircuitTikZ 的 Latex 从 yosys 中绘制原理图并将其转换为 PDF?
- python - Python程序向后打印数组中的字母
- angular - Angular Http拦截器阻止http进度事件
- vuejs2 - Vue2Leaflet 如何在打开时显示 1 弹出窗口
- ios - 通过传递字典创建 httpbody 时获取 400(错误请求)
- kubernetes - 如何在本地从谷歌云访问磁盘快照?
- vba - 如何在 ppt 中选择具有相同自定义布局或包含给定形状或文本的幻灯片?