如何使用 Scala 安排石英作业

编程入门 行业动态 更新时间:2024-10-27 02:19:22
本文介绍了如何使用 Scala 安排石英作业的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试获取在 Scala 中运行的石英作业的最简单示例.

I am trying to get the most simple example of a quartz job running in Scala.

configure() 在我的模块加载时执行一次.

configure() gets executed once when my module is loaded.

lazy val quartz = StdSchedulerFactory.getDefaultScheduler override def configure() = { val Job = new Job { override def execute(jobExecutionContext: JobExecutionContext) = { println("Event") } } val job = JobBuilder.newJob(Job.getClass) .withIdentity("Job", "Group") .build val trigger: Trigger = TriggerBuilder .newTrigger .withIdentity("Trigger", "Group") .withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build quartz.start quartz.scheduleJob(job, trigger) }

但是,当此代码运行时,我收到一条错误消息.

However, I get an error message when this code runs.

2015-09-29 15:27:05,015 [DefaultQuartzScheduler_QuartzSchedulerThread] ERROR org.quartz.core.ErrorLogger - An error occured instantiating job to be executed. job= 'Group.Job' org.quartz.SchedulerException: Problem instantiating class 'com.search.binder.SearchModule$$anon$1' at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:58) ~[quartz-2.2.1.jar:na] at org.quartz.simpl.PropertySettingJobFactory.newJob(PropertySettingJobFactory.java:69) ~[quartz-2.2.1.jar:na] at org.quartz.core.JobRunShell.initialize(JobRunShell.java:127) ~[quartz-2.2.1.jar:na] at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:375) [quartz-2.2.1.jar:na] Caused by: java.lang.InstantiationException: com.search.binder.SearchModule$$anon$1 at java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_45] at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:56) ~[quartz-2.2.1.jar:na] ... 3 common frames omitted Caused by: java.lang.NoSuchMethodException: com.search.binder.SearchModule$$anon$1.<init>() at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_45] at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_45] ... 4 common frames omitted

有没有人有一个在 Scala 中运行的尽可能简单"的石英调度程序示例?

Does anyone have an "as simple as possible" example of quartz scheduler running in Scala?

推荐答案

我认为问题在于quartz 试图实例化一个Job 的新实例,但它找不到它的构造函数,因为您通过 Job.getClass 传递的类是一个匿名类.尝试如下定义:

I think that the problem is that quartz is trying to instantiate a new instance of Job but it can't find its constructor because the class you are passing via Job.getClass is an anonymous class. Try defining it as follows:

class MyJob extends Job { override def execute(jobExecutionContext: JobExecutionContext) = { println("Event") } }

然后:

val job = JobBuilder.newJob(classOf[MyJob]) .withIdentity("Job", "Group") .build

更多推荐

如何使用 Scala 安排石英作业

本文发布于:2023-11-24 08:44:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1624517.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   如何使用   Scala   石英

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!