我正在开发一个Web应用程序,我需要安排一些代码.我正在使用石英.现在问题是我想让它在每天之后工作,或者说24小时.请让我知道如何做到这一点.我之前没有这样做,我正在使用调度程序API中的示例代码.
我想开发一个简单的Java Web应用程序,在一些任务完成后发送电子邮件通知,例如提交审批的请求,以及定期提醒(称批准者).我想使用Quartz Scheduler来做到这一点.我是新手,所以任何人都可以帮我开始这个.
提前致谢.
我复制并粘贴了JAR文件:quartz-1.8.0在WEB-INF\lib中,甚至在common\lib中,然后在我的Java文件中导入时找不到它.:(
使用JobStoreTX,JobStoreCMT和RAMJobStore显示在Seam 2中使用Quartz的示例.
我们的项目需要保留作业,以便我们可以进行集群,但是我无法让JobStoreCMT执行作业.JobStoreCMT和JobStoreTX特别针对Seam有什么区别?
是否可以优先使用JobStoreTX,只是因为它接缝更容易,或者我错过了一些关键的东西?
在阅读Quartz Scheduler文档时,我遇到了两种不同的方式来获取Scheduler的实例,但不清楚何时使用该实例。
getScheduler()getDefaultScheduler()我知道这getDefaultScheduler将只是创建一个StdSchedulerFactorywhile 实例,并getScheduler()根据提供给它的配置来初始化调度程序。
有谁能帮助我了解每种情况最适用的用例?
我将石英库从版本1.5.2更改为2.1.2.使用它的旧版本,项目运行并且工作正常,但是在2.1.2中我得到了异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lcJobDetail' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.InstantiationError: org.quartz.JobDetail
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:546)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.deveto.struts.triggers.TriggerTables.<clinit>(TriggerTables.java:36)
... 113 more
Caused by: java.lang.InstantiationError: org.quartz.JobDetail
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(MethodInvokingJobDetailFactoryBean.java:177)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
... 125 more
Run Code Online (Sandbox Code Playgroud)
applicationContext.xml中的quartz声明:
<bean name="lcTask" class="com.deveto.struts.triggers.TriggerLeagueCup"></bean>
<bean id="lcJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="lcTask" />
<property …Run Code Online (Sandbox Code Playgroud) 我有一个Quartz Job,我可以安排一些Cron Trigger.
ReportSchedule reportSchedule = ... // my object
JobDetail jobDetail = new JobDetail(reportSchedule.getScheduleName(),
reportSchedule.getScheduleGroup(),
ExtendedReportJob.class /* my job */);
jobDetail.getJobDataMap().put("reportSchedule", reportSchedule);
jobDetail.setDescription(reportSchedule.getScheduleDescription());
CronTrigger trigger = ...; // depends on the report schedule
scheduler.scheduleJob(jobDetail, trigger);
Run Code Online (Sandbox Code Playgroud)
此代码成功将作业和详细信息写入数据库.
该reportSchedule对象包含作业所需的特定参数.但是,我可能想要更改参数.
我可以这样做
scheduler.deleteJob(name, group);
scheduler.scheduleJob(jobDetail, trigger);
// where jobDetail.getJobDataMap() has the updated reportSchedule
Run Code Online (Sandbox Code Playgroud)
但是,这样做会立即触发作业,因为触发器取决于报告计划,我不想更改它(我想保留原始日期).所以我的问题是:有没有办法在不改变工作的情况下修改工作JobDetail或JobDataMap工作之间Trigger?
我正在使用Quartz 1.6.0.
我可以在我的Quartz工作中使用我的域类中的动态查找器,但org.hibernate.LazyInitializationException在访问关系时可以获得.我以为他们既可以工作,也可以不工作.
class MyJob {
def author = Author.list().first() // fine
def book = Book.get(1) // fine
println author.books // lazy exception
}
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?根据Quartz插件文档,每个作业线程都会获得一个Hibernate会话,但我遇到了这个问题.
Grails 2.1.1, quartz:1.0-RC9
完全错误:
2013-07-16 16:08:10,008 [quartzScheduler_Worker-10] ERROR grails.plugins.quartz.listeners.ExceptionPrinterJobListener - Exception occurred in job: null
org.quartz.JobExecutionException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: test.Author.books, no session or session was closed [See nested exception: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: test.Author.books, no session or session was closed]
at …Run Code Online (Sandbox Code Playgroud) 我是Quartz Job Scheduler的新手,我可能会问一些愚蠢的问题,但是......我在将Quartz.Server.2010连接到MS Sql Server 2012时遇到了麻烦.
我创建了一些工作正常但无法与SQL Server建立连接的作业.
我在quartz.config文件中编写了代码,但是我一直收到一个无法解决的错误:
"服务异常终止,Topshelf.ServiceBuilderException:创建服务时发生异常:QuartzServer ---> Quartz.SchedulerException:未为DataSource指定提供者:default"
即使我在App.config文件中设置了提供程序:
可能是我的问题?
我正在探索石英调度器,
Cron触发器和Simple触发器之间有什么区别,除了它们的定义方式.我发现任何其他差异.
比如哪个是线程安全的,或者被称为最佳实践或类似的东西.
有人可以解释它们之间的差异以及我们可以使用它们的情况
我搜索了很多,但我无法解决任何帖子或评论或任何完整的代码集成spring和quartz并将石英配置存储在数据库中使用java配置(XML-LESS)任何人都可以帮助我并向我展示一些代码或参考?非常感谢
quartz-scheduler ×10
java ×7
email ×1
grails ×1
grails-orm ×1
quartz.net ×1
reminders ×1
scheduling ×1
seam ×1
seam2 ×1
spring ×1
struts2 ×1