小米摄像头被小偷拿走6如何最快买到?官方攻略拿走不谢

18:31 提问
java quartz 初始化异常
02:11:11,421 (QuartzScheduler.java:2425)-An error occured instantiating job to be executed. job= 'maxbet_job_group.isn_job_group'
org.quartz.SchedulerException: Problem instantiating class 'com.thrash.job.DataJob' -
[See nested exception: java.util.ConcurrentModificationException]
at org.quartz.core.JobRunShell.initialize(JobRunShell.java:134)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:375)
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at org.quartz.utils.DirtyFlagMap$DirtyFlagIterator.next(DirtyFlagMap.java:314)
at org.quartz.utils.DirtyFlagMap$DirtyFlagMapEntryIterator.next(DirtyFlagMap.java:375)
at org.quartz.utils.DirtyFlagMap$DirtyFlagMapEntryIterator.next(DirtyFlagMap.java:368)
at java.util.HashMap.putAll(Unknown Source)
at org.quartz.utils.DirtyFlagMap.putAll(DirtyFlagMap.java:184)
at org.quartz.simpl.PropertySettingJobFactory.newJob(PropertySettingJobFactory.java:72)
at org.quartz.core.JobRunShell.initialize(JobRunShell.java:127)
... 1 more
按赞数排序
其他相似问题1759人阅读
Quartz.net学习(12)
& & & &&Quartz.NET为了提高程序的容错性,加入了失败恢复和异常处理的机制。
& & & & 失败恢复是Quartz.NET触发器的方法,用于指示失败之后的操作
ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
.WithIdentity(&trigger2&, &group1&)
.StartAt(startTime)
.WithSimpleSchedule(x =& x
.WithIntervalInSeconds(3)
.RepeatForever()
.WithMisfireHandlingInstructionNowWithExistingCount()) //设置失败后操作还有的操作有
& & & &JobExecutionException 是主要捕获错误时操作错误的类,其中RefireImmediately=true表示出错后马上恢复执行,UnscheduleAllTriggers=true表示出错后暂停所有触发器。
具体代码如下(出错之后马上恢复):
public class BadJob1 : IJob
ILog log = LogManager.GetLogger(typeof(BadJob1));
public virtual void Execute(IJobExecutionContext context)
JobKey jobKey = context.JobDetail.K
JobDataMap dataMap = context.JobDetail.JobDataM
int denominator = dataMap.GetInt(&denominator&);
Format(&{0} 被除数 {1}&, &---& + jobKey + & 执行时间 & + DateTime.Now, denominator);
int calculation = 4815 /
catch (Exception e)
(&--- Error 错误&);
JobExecutionException e2 = new JobExecutionException(e);
dataMap.Put(&denominator&, &1&);
e2.RefireImmediately =
Format(&---{0} 执行完成 {1}&, jobKey, DateTime.Now.ToString());
任务和触发器的定义以及计划的执行和上篇类似,此处就不在贴代码
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:73694次
积分:1337
积分:1337
排名:千里之外
原创:63篇
(1)(1)(2)(7)(2)(1)(1)(1)(2)(4)(6)(34)(1)1336人阅读
quartz(13)
当Job在执行是可能会出现异常操作,我们可以再Job执行期间处理这些异常&然后决定Job是否继续往下执行
BadJob1.java
package cn.zto.
import java.text.SimpleDateF
import java.util.D
import org.quartz.DisallowConcurrentE
import org.quartz.J
import org.quartz.JobDataM
import org.quartz.JobD
import org.quartz.JobExecutionC
import org.quartz.JobExecutionE
import org.quartz.JobK
import org.quartz.PersistJobDataAfterE
import org.slf4j.L
import org.slf4j.LoggerF
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class BadJob1 implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
SimpleDateFormat dateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
JobKey jobKey = context.getJobDetail().getKey();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
int denominator = dataMap.getInt(&denominator&);
System.out.println(&---& + dateFormat.format(new Date()) +&:&+ jobKey + & 除数为: & + denominator);
this.calculation = (4815 / denominator);
} catch (Exception e) {
System.out.println(&--- Error in job!&);
JobExecutionException e2 = new JobExecutionException(e);
dataMap.put(&denominator&, &1&);
//job会继续执行下去
e2.setRefireImmediately(true);
System.out.println(&---& +dateFormat.format(new Date()) +&:&+ jobKey
+& 执行结束 &
人工制造一个异常&&让除数为0&&,但是这个Job会继续执行下去
BadJob2.java
package cn.zto.
import java.text.SimpleDateF
import java.util.D
import org.quartz.DisallowConcurrentE
import org.quartz.J
import org.quartz.JobD
import org.quartz.JobExecutionC
import org.quartz.JobExecutionE
import org.quartz.JobK
import org.quartz.PersistJobDataAfterE
import org.slf4j.L
import org.slf4j.LoggerF
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class BadJob2 implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
SimpleDateFormat dateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
JobKey jobKey = context.getJobDetail().getKey();
System.out.println(&---& +dateFormat.format(new Date()) +&:&+ jobKey
int zero = 0;
this.calculation = (4815 / zero);
} catch (Exception e) {
System.out.println(&--- Error in job!&);
JobExecutionException e2 = new JobExecutionException(e);
//自动停止Schedule,和这个Job有关的触发器,Job也将不再运行
e2.setUnscheduleAllTriggers(true);
System.out.println(&---& +dateFormat.format(new Date()) +&:&+ jobKey
+& 执行结束 &
人工制造一个异常&&让除数为0&&,当出现异常时这个Job会停止
JobExceptionExample.java
package cn.zto.
import java.text.SimpleDateF
import java.util.D
import org.quartz.DateB
import org.quartz.JobB
import org.quartz.JobD
import org.quartz.S
import org.quartz.SchedulerF
import org.quartz.SchedulerMetaD
import org.quartz.SimpleScheduleB
import org.quartz.SimpleT
import org.quartz.TriggerB
import org.quartz.impl.StdSchedulerF
import org.slf4j.L
import org.slf4j.LoggerF
import cn.zto.job.BadJob1;
import cn.zto.job.BadJob2;
public class JobExceptionExample
public void run()
throws Exception
System.out.println(&------- 初始化 -------------------&);
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
System.out.println(&------- 初始化完成 --------&);
System.out.println(&------- 向Scheduler加入Job ----------------&);
SimpleDateFormat dateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
Date startTime = DateBuilder.nextGivenSecondDate(null, 15);
JobDetail job = JobBuilder.newJob(BadJob1.class)
.withIdentity(&badJob1&, &group1&)
//设置一个为0的除数放入JobDatamap中
.usingJobData(&denominator&, &0&)
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity(&trigger1&, &group1&)
.startAt(startTime)
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(10).repeatForever())
Date ft = sched.scheduleJob(job, trigger);
System.out.println(job.getKey() + & 将在: & + dateFormat.format(ft) + & 时运行,重复: & + trigger.getRepeatCount() + & 次,每 & + trigger.getRepeatInterval() / 1000L + & 秒执行一次&);
job = JobBuilder.newJob(BadJob2.class).withIdentity(&badJob2&, &group1&).build();
trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity(&trigger2&, &group1&)
.startAt(startTime)
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever())
ft = sched.scheduleJob(job, trigger);
System.out.println(job.getKey() + & 将在: & + dateFormat.format(ft) + & 时运行,重复: & + trigger.getRepeatCount() + & 次,每 & + trigger.getRepeatInterval() / 1000L + & 秒执行一次&);
System.out.println(&------- 开始Scheduler ----------------&);
sched.start();
System.out.println(&------- Scheduler调用job结束 -----------------&);
System.out.println(&------- 等待30秒... --------------&);
Thread.sleep(30000L);
catch (Exception e){
System.out.println(&------- 关闭Scheduler ---------------------&);
sched.shutdown(true);
System.out.println(&------- 关闭完成 -----------------&);
SchedulerMetaData metaData = sched.getMetaData();
System.out.println(&Executed & + metaData.getNumberOfJobsExecuted() + & jobs.&);
public static void main(String[] args) throws Exception{
JobExceptionExample example = new JobExceptionExample();
example.run();
运行效果:
------- 初始化 -------------------
SLF4J: Failed to load class &org.slf4j.impl.StaticLoggerBinder&.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
------- 初始化完成 --------
------- 向Scheduler加入Job ----------------
group1.badJob1 将在: 日 19时43分30秒 时运行,重复: -1 次,每 10 秒执行一次
group1.badJob2 将在: 日 19时43分30秒 时运行,重复: -1 次,每 5 秒执行一次
------- 开始Scheduler ----------------
------- Scheduler调用job结束 -----------------
------- 等待30秒... --------------
---日 19时43分30秒:group1.badJob1 除数为: 0
--- Error in job!
---日 19时43分30秒:group1.badJob1 除数为: 1
---日 19时43分30秒:group1.badJob1 执行结束
---日 19时43分30秒:group1.badJob2
--- Error in job!
---日 19时43分40秒:group1.badJob1 除数为: 1
---日 19时43分40秒:group1.badJob1 执行结束
---日 19时43分50秒:group1.badJob1 除数为: 1
---日 19时43分50秒:group1.badJob1 执行结束
------- 关闭Scheduler ---------------------
------- 关闭完成 -----------------
Executed 5 jobs.

&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:181007次
积分:2270
积分:2270
排名:第15229名
原创:55篇
评论:114条
(1)(1)(2)(4)(1)(5)(4)(12)(2)(4)(5)(19)用spring3调用quartz出现一个常见错误的解决办法
错误呈上:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'jobTask' defined in class path
resource [applicationContext.xml]: Invocation of init method
nested exception is java.lang.NoSuchMethodError:
mons.collections.SetUtils.orderedSet(Ljava/util/S)Ljava/util/S
由此看见:
mons.collections.SetUtils没有orderedSet(Set)这个方法
首当其冲的念头就是jar包有问题,分析可知:commons-collections的jar包版本过低,因为一般情况下,版本向上市兼容的。
查看该jar包
为:commons-collections-2.1.1.jar(说明:本实例 是通过maven配置的
,制定spring为3.1.2.RELEASE版本后 自动给附带引入的jar)
解决方法:
查看最近版本后得知有3.2.1版本的jar,所以pom配置
加入对应的dependency
&!-- commons-collections
&&&dependency&
&&&&groupId&commons-collections&/groupId&
&artifactId&commons-collections&/artifactId&
&version&3.2.1&/version&
&&&/dependency&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。版权声明:本文由吴仙杰创作整理,转载请注明出处:
org.quartz.JobExecutionException 会在 Scheduler(调度器)运行错误时,由 job(作业)实现类抛出。
1.1 捕获并解决异常,立即重新执行作业
在我们捕获异常并解决异常后,可以调用 JobExecutionException#setRefireImmediately(true) 立即重新执行作业。
假设我们有一个会抛出异常的 job 实现类,job 实现类的代码片断如下:
// 一个异常例子,假设第一次传入的 denominator 为 0,那么将会抛出异常
calculation = 4815 /
} catch (Exception e) {
JobExecutionException e2 = new JobExecutionException(e);
// 在第一次异常后,修改 denominator 参数为 1,那么后面的执行就不会出错了
dataMap.put("denominator", "1");
// true 表示立即重新执行作业
e2.setRefireImmediately(true);
上面的作业会在第一次执行时抛出 java.lang.ArithmeticException: / by zero 异常后,马上又会执行一次,之后都可以正常执行作业。
注意: 为了共享在同一个 JobDetail 中的
JobDataMap,我们需要在上面这个 job 实现类上加入 @PersistJobDataAfterExecution 和 @DisallowConcurrentExecution 注解,详见 。
1.2 捕获异常,取消所有触发器
在我们捕获异常时,可以调用 JobExecutionException#setUnscheduleAllTriggers(true) 取消所有与这个作业有关的触发器。
假设我们有一个会抛出异常的 job 实现类,job 实现类的代码片断如下:
// 一个异常例子
int zero = 0;
calculation = 4815 /
} catch (Exception e) {
JobExecutionException e2 = new JobExecutionException(e);
// true 表示 Quartz 会自动取消所有与这个 job 有关的 trigger,从而避免再次运行 job
e2.setUnscheduleAllTriggers(true);
上面的作业会在抛出异常后,就不再执行任何有关该作业的触发器了。
2. 作业中断
org.quartz.InterruptableJob 接口提供了一种中断机制,这个接口只有一个方法 interrupt(),这个方法会在用户发出中断请求到 Scheduler(调度器)时触发(即调用 Scheduler#interrupt(JobDetail#getKey()) 方法时触发)。
其中 InterruptableJob 接口又继承了 Job 接口,所以当我们使用时,只需要实现 InterruptableJob 接口,重写其中的 execute 和 interrupt 方法即可。
PS:本文针对的 Quartz 版本为 Quartz 2.2.3。官方下载地址:
你可能感兴趣的文章
1 收藏,216
17 收藏,6.1k
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:
扫扫下载 App}

我要回帖

更多关于 小米摄像头被小偷拿走 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信