一开始的定义是怎么样 的要看
配置截图瞅瞅。可以参考https://www.cnblogs.com/qlqwjy/p/8722121.html
有一个算法的
StartTime 首次执行时间;
每月11号触发;
举例是为了说明虽然是每月11号执行,但是设置了首次执行时间是五月,那么一月11号、二月11号、三月11号、四月11号都不会执行,突出了StartTime的限制作用。
打错了是星期
这个服务内部的问题
这个是以国外的日历格式为主的,国外一周的第一天为星期日,不像我们经常看到的日历 都是从星期一到星期日的,他们是星期日到星期六, 一周的最后一天是星期六
因为每个实例需要的参数不同,quartz没有办法提供带有参数的构造函数去给job实例初始化参数,因此quartz在每次执行job的时候都需要重新创建一个job实例,并通过newInstance的反射机制去调用无参构造函数,依据job的实现类的描述来实例化job,所以想进行传参就需要使用JobExecutionContext。
scheduler.shutdown();
说明MAVEN没有下载到这些JAR包,可能是网络问题,把MAVEN的源设置成阿里云的试试看。
我也遇到了,请问你解决了吗
老师我看错了,不好意思。。。。
是极是极
那个变量注入了吗? @Resource
要用任务发送的方式来通知
QuartzEntity quartz = new QuartzEntity(); quartz.setJobName("monitor_addNesToES"); quartz.setJobGroup("monitor"); quartz.setDescription("定时向ES中更新数据"); quartz.setJobClassName("com.jin.quartztask.job.AddNewsToEsJob"); quartz.setCronExpression("0 0 8/1 * * ?"); Class cls = Class.forName(quartz.getJobClassName()) ; cls.newInstance(); //构建job信息 JobDetail job = JobBuilder.newJob(cls).withIdentity(quartz.getJobName(), quartz.getJobGroup()) .withDescription(quartz.getDescription()).build(); //添加JobDataMap数据 *//*job.getJobDataMap().put("itstyle", "欢迎你"); job.getJobDataMap().put("blog", "https://www.xxx.com"); job.getJobDataMap().put("data", new String[]{"张三","李四"});*//* // 触发时间点 CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(quartz.getCronExpression()); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger"+quartz.getJobName(), quartz.getJobGroup()) .startNow().withSchedule(cronScheduleBuilder).build(); //交由Scheduler安排触发 scheduler.scheduleJob(job, trigger);
调用job之前会创建一个 job对象 在调用完之后会释放这个对象并回收,下次调用的时候又会创建,循环这样的过程。
没有 throws SchedulerException异常吧
你看看你的类文件里有这个方法嘛
你写错了。buil()方法是TriggerBuilder的,你写到里面了。正确的是这样:
//创建一个trigger实例,定义job的执行过程
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger","group").startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
.build();
hello这个类是否存在,检验下类名书写是否正确 比如创建的是Hello 些的hello