当前位置: 首页 > news >正文

网站建设管理工作的总结做一个网站维护多少钱

网站建设管理工作的总结,做一个网站维护多少钱,网站内容一样影响收录,国家企业信用信息Scheduler 每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也是新的) Quzrtz 定时任务默认都是并发执行,不会等待上一次任务执行完毕,只要间隔时间到就会执…

Scheduler 每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也是新的)

Quzrtz 定时任务默认都是并发执行,不会等待上一次任务执行完毕,只要间隔时间到就会执行,如果定时任务执行太长,会长时间占用资源,导致其它任务堵塞

@
DisallowConcurrentExecution: job类上,禁止并发地执行同一个job定义 (JobDetail定义的)的多个实例。

在这里插入图片描述

  • scheduler:可以理解为定时任务的工作容器或者说是工作场所,所有定时任务都是放在里面工作,可以开启和停止。
  • trigger:可以理解为是定时任务任务的工作规则配置,例如说,没个几分钟调用一次,或者说指定每天那个时间点执行。
  • jobDetail:定时任务的信息,例如配置定时任务的名字,群组之类的。
  • job:定时任务的真正的业务处理逻辑的地方。

简单示例

TestClient.Java

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class TaskClient {public static void main(String[] args) {JobDetail jobDetail = JobBuilder.newJob(TaskJob.class).withIdentity("job1", "group1")  //设置JOB的名字和组.build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "trigger1").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()).build();try {Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();scheduler.scheduleJob(jobDetail,trigger);scheduler.start();} catch (SchedulerException ex) {ex.printStackTrace();}}}

TaskJob.Java

import cn.hutool.core.date.DateUtil;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;public class TaskJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("TaskJob => " + DateUtil.now());}
}

在这里插入图片描述

usingJobData

通过 usingJobData 往定时任务中传递参数

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class TaskClient {public static void main(String[] args) {JobDetail jobDetail = JobBuilder.newJob(TaskJob.class).withIdentity("job1", "group1").usingJobData("job","jobDetail1.JobDataMap.Value").build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "trigger1").usingJobData("trigger","trigger.JobDataMap.Value").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()).build();try {Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();scheduler.scheduleJob(jobDetail,trigger);scheduler.start();} catch (SchedulerException ex) {ex.printStackTrace();}}}

TaskJob.java

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;public class TaskJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();JobDataMap triggerMap = context.getTrigger().getJobDataMap();JobDataMap mergeMap = context.getMergedJobDataMap();System.out.println("jobDataMap => " + jobDataMap.getString("job"));System.out.println("triggerMap => " + triggerMap.getString("trigger"));System.out.println("mergeMap => " + mergeMap.getString("trigger"));}
}

在这里插入图片描述

通过 属性赋值

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class TaskClient {public static void main(String[] args) {JobDetail jobDetail = JobBuilder.newJob(TaskJob.class).withIdentity("job1", "group1").usingJobData("job","jobDetail1.JobDataMap.Value").usingJobData("name","jobDetail1.name.Value") //通过 setName 自动赋值.build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "trigger1").usingJobData("trigger","trigger.JobDataMap.Value").usingJobData("name","trigger.name.Value")  //如果 Trigger 有值,会覆盖 JobDetail.startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()).build();try {Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();scheduler.scheduleJob(jobDetail,trigger);scheduler.start();} catch (SchedulerException ex) {ex.printStackTrace();}}}
import org.quartz.*;public class TaskJob implements Job {private String name;public void setName(String name) {this.name = name;}@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("name => " + name);}
}

非并发执行

@
DisallowConcurrentExecution job类上,禁止并发地执行同一个job定义 (JobDetail定义的)的多个实例。

import cn.hutool.core.date.DateUtil;
import org.quartz.*;@DisallowConcurrentExecution
public class TaskJob implements Job {@Overridepublic void execute(JobExecutionContext context) {System.out.println("Time => " + DateUtil.now());try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}}
}

@
PersistJobDataAfterExecution
持久化JobDetail中的JobDataMap(对 trigger 中的 datamap 无效),如果一个任务不是

import cn.hutool.core.date.DateUtil;import org.quartz.*;//持久化JobDetail中的JobDataMap(对 trigger 中的 datamap 无效),如果一个任务不是
@PersistJobDataAfterExecution
public class TaskJob implements Job {@Overridepublic void execute(JobExecutionContext context) {JobDataMap triggerMap = context.getJobDetail().getJobDataMap();triggerMap.put("count", triggerMap.getInt("count") + 1);System.out.println("Time => " + DateUtil.now() + " count =>" + triggerMap.getInt("count"));}
}

Client

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class TaskClient {public static void main(String[] args) {JobDetail jobDetail = JobBuilder.newJob(TaskJob.class).withIdentity("job1", "group1").usingJobData("job","jobDetail1.JobDataMap.Value").usingJobData("name","jobDetail1.name.Value") //通过 setName 自动赋值.usingJobData("count",0) //通过 setName 自动赋值.build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "trigger1").usingJobData("trigger","trigger.JobDataMap.Value").usingJobData("name","trigger.name.Value")  //如果 Trigger 有值,会覆盖 JobDetail.startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()).build();try {Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();scheduler.scheduleJob(jobDetail,trigger);scheduler.start();} catch (SchedulerException ex) {ex.printStackTrace();}}}
http://www.yayakq.cn/news/204043/

相关文章:

  • 自己做网站 有名6天津市网站建设管理办法
  • 公司网站开发需要什么证书路由器安装wordpress
  • 黑龙江生产建设兵团知青网站网站用php与asp哪个好
  • 设计网站官网有哪些可以做兼职翻译的网站
  • 新加坡二手手机网站大全wordpress 公众号采集
  • 租凭境外服务器做违规网站装修公司十大排行榜
  • 个人站长做什么网站好1+官网商城
  • 商城网站建设公司招聘wordpress筛选热门列表
  • 官网源码下载seo推广优化费用
  • 网站建设客户常见问题村网通为每个农村建设了网站
  • 网站建设工程设计图app下载页面
  • 网站建设功能要求WordPress企业响应式主题
  • 南昌网站维护制作在什么网站上做外贸
  • 怎么制作网站app手机应用商店下载app
  • 网站备案 怎么加网站关键词选取
  • 石英石台面做网单有什么网站精品网站做爆款
  • 怎么做家政的网站网站公司做网站修改会收费吗
  • 网站底部 设计一般做推广网站的客户需求仕什么
  • 徐州智能模板建站电子商务都是做网站的吗
  • 购物网站开发教程视频外贸网站推广有哪些
  • 北京网站建设联系兴田德润兰州seo快速排名
  • 各大搜索引擎提交网站入口大全新能源汽车价格表
  • 搜索公司信息的网站网站链接做二维码
  • 分销网站手机模板wordpress当前版本
  • 网站开发学习课程湖南建筑网
  • 上海手机网站建设报价做网盘搜索网站
  • 公司做网站哪家好织梦欧美网站模板
  • 长春网站建设优势吉网传媒好网站备案表上面的开办单位写什么
  • 傻瓜式网站制作软件东莞市品牌网站建设平台
  • wordpress开启多站点模式无人售货机