一、Quartz简介

    主要做定时任务,即:在指定时间点或时间段,执行某项任务,可设置执行次数、时间间隔等。

二、Springcloud简介

    对比传统的、庞大的、复杂的、以ssm或ssh为框架的web项目而言,springcloud显得格外轻巧,不错乱,易管理,至少模块清晰,功能明确。

三、Springcloud集成quartz

    就个人理解,quartz可集成到某个功能模块,也可以单独做一个服务(功能模块),本文介绍的就是单独作为一个服务进行集成的(未开启集群)。

    第一步:在已有的父工程下新建一个子工程

    第二步:依赖

    

    第三步:配置

/**
* @Title: MyJobFactory.java
* @Package com.ewp.data.controller.quartz
* @Description: 解决不能spring注入bean的问题
* @author zxj
* @date 2018年2月26日
* @version V1.0
*/
package com.ewp.data.config;import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;
import org.springframework.stereotype.Component;/*** @ClassName: MyJobFactory* @Description: 解决不能spring注入bean的问题* @author zxj* @date 2018年2月26日**/
@Component 
public class MyJobFactory extends AdaptableJobFactory {@Autowired  private AutowireCapableBeanFactory capableBeanFactory;  @Override  protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {  Object jobInstance = super.createJobInstance(bundle);  capableBeanFactory.autowireBean(jobInstance); return jobInstance;  }  
}
package com.ewp.data.config;import java.io.IOException;
import java.util.Properties;import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;/*** 
* @ClassName: QuartzConfig
* @Description: 配置任务调度中心(服务启动时启动)
* @author zxj
* @date 2018年2月26日
**/
@Configuration
public class QuartzConfig {@Autowired  private MyJobFactory myFactory;  //自定义的factory  @Value("${spring.datasource.url}")private String url;// 数据源地址@Value("${spring.datasource.username}")private String userName;// 用户名@Value("${spring.datasource.password}")private String password;// 密码@Bean  public SchedulerFactoryBean schedulerFactoryBean() {  SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();  try {  schedulerFactoryBean.setQuartzProperties(quartzProperties());  schedulerFactoryBean.setJobFactory(myFactory); //指向自建的调度工厂,用于解决方法类无法注入的问题 } catch (IOException e) {  e.printStackTrace();  }  return schedulerFactoryBean;  }  @Beanpublic Scheduler scheduler() throws IOException, SchedulerException {Scheduler scheduler = schedulerFactoryBean().getScheduler();scheduler.start();// 服务启动shireturn scheduler;}/*** * @Title: quartzProperties* @Description: 设置quartz属性* @param @return* @param @throws IOException    参数* @return Properties    返回类型* @throws*/public Properties quartzProperties() throws IOException {Properties prop = new Properties();prop.put("org.quartz.scheduler.instanceName", "quartzScheduler");// 调度器的实例名prop.put("org.quartz.scheduler.instanceId", "AUTO");// 实例的标识prop.put("org.quartz.scheduler.skipUpdateCheck", "true");// 检查quartz是否有版本更新(true 不检查)prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.StdJDBCDelegate");prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");// 表名前缀prop.put("org.quartz.jobStore.isClustered", "false");// 集群开关prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");// 线程池的名字prop.put("org.quartz.threadPool.threadCount", "10");// 指定线程数量prop.put("org.quartz.threadPool.threadPriority", "5");// 线程优先级(1-10)默认为5prop.put("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread", "true");prop.put("org.quartz.jobStore.dataSource", "quartzDataSource");prop.put("org.quartz.dataSource.quartzDataSource.driver", "com.mysql.jdbc.Driver");prop.put("org.quartz.dataSource.quartzDataSource.URL", url);prop.put("org.quartz.dataSource.quartzDataSource.user", userName);prop.put("org.quartz.dataSource.quartzDataSource.password", password);prop.put("org.quartz.dataSource.quartzDataSource.maxConnections", "50");return prop;}}

    第四步:建类(任务管理类)

package com.ewp.data.quartz;import java.io.Serializable;/*** 
* @ClassName: TaskInfo
* @Description:  管理定时任务
* @author zxj
* @date 2018年2月26日
**/
public class TaskInfo implements Serializable{private static final long serialVersionUID = -8054692082716173379L;/*** 增加或修改标识*/private int id;/*** 任务名称*/private String jobName;/*** 任务分组*/private String jobGroup;/*** 任务描述*/private String jobDescription;/*** 任务状态*/private String jobStatus;/*** 任务表达式*/private String cronExpression;/*** 创建时间*/private String createTime;/*** 间隔时间(毫秒)*/private String milliSeconds;/*** 重复次数*/private String repeatCount;/*** 起始时间*/private String startDate;/*** 终止时间*/private String endDate;/*** @return the milliSeconds*/public String getMilliSeconds() {return milliSeconds;}/*** @param milliSeconds the milliSeconds to set*/public void setMilliSeconds(String milliSeconds) {this.milliSeconds = milliSeconds;}/*** @return the repeatCount*/public String getRepeatCount() {return repeatCount;}/*** @param repeatCount the repeatCount to set*/public void setRepeatCount(String repeatCount) {this.repeatCount = repeatCount;}/*** @return the startDate*/public String getStartDate() {return startDate;}/*** @param startDate the startDate to set*/public void setStartDate(String startDate) {this.startDate = startDate;}/*** @return the endDate*/public String getEndDate() {return endDate;}/*** @param endDate the endDate to set*/public void setEndDate(String endDate) {this.endDate = endDate;}public String getJobName() {return jobName;}public void setJobName(String jobName) {this.jobName = jobName;}public String getJobGroup() {return jobGroup;}public void setJobGroup(String jobGroup) {this.jobGroup = jobGroup;}public String getJobDescription() {return jobDescription;}public void setJobDescription(String jobDescription) {this.jobDescription = jobDescription;}public String getJobStatus() {return jobStatus;}public void setJobStatus(String jobStatus) {this.jobStatus = jobStatus;}public String getCronExpression() {return cronExpression;}public void setCronExpression(String cronExpression) {this.cronExpression = cronExpression;}public String getCreateTime() {return createTime;}public void setCreateTime(String createTime) {this.createTime = createTime;}public int getId() {return id;}public void setId(int id) {this.id = id;}
}

    第五步:写方法(任务处理方法)

package com.ewp.data.service;import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;import org.apache.commons.lang3.time.DateFormatUtils;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.matchers.GroupMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.ewp.data.quartz.TaskInfo;
import com.ewp.data.quartz.exception.ServiceException;
import com.ewp.data.util.DateUtil;/*** * @ClassName: TaskService* @Description: 任务处理类* @author zxj* @date 2018年2月26日**/
@Service
public class TaskService {private static final Logger LOGGER = LoggerFactory.getLogger(TaskService.class);@Autowiredprivate Scheduler scheduler;/*** * @Title: list* @Description: 任务列表* @param @return    参数* @return List<TaskInfo>    返回类型* @throws*/public List<TaskInfo> queryJobList() {LOGGER.info("TaskService--data-s-->queryJobList()");List<TaskInfo> list = new ArrayList<>();try {for (String groupJob : scheduler.getJobGroupNames()) {for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.<JobKey> groupEquals(groupJob))) {List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);for (Trigger trigger : triggers) {Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());JobDetail jobDetail = scheduler.getJobDetail(jobKey);String cronExpression = "";String createTime = "";String milliSeconds = "";String repeatCount = "";String startDate = "";String endDate = "";if (trigger instanceof CronTrigger) {CronTrigger cronTrigger = (CronTrigger) trigger;cronExpression = cronTrigger.getCronExpression();createTime = cronTrigger.getDescription();} else if (trigger instanceof SimpleTrigger) {SimpleTrigger simpleTrigger = (SimpleTrigger) trigger;milliSeconds = simpleTrigger.getRepeatInterval()+ "";repeatCount = simpleTrigger.getRepeatCount() + "";startDate = DateUtil.getDateStr(simpleTrigger.getStartTime(),DateUtil.FORMAT_HOUR_DATE_TIME);endDate = DateUtil.getDateStr(simpleTrigger.getEndTime(),DateUtil.FORMAT_HOUR_DATE_TIME);}TaskInfo info = new TaskInfo();info.setJobName(jobKey.getName());info.setJobGroup(jobKey.getGroup());info.setJobDescription(jobDetail.getDescription());info.setJobStatus(triggerState.name());info.setCronExpression(cronExpression);info.setCreateTime(createTime);info.setRepeatCount(repeatCount);info.setStartDate(startDate);info.setMilliSeconds(milliSeconds);info.setEndDate(endDate);list.add(info);}}}LOGGER.info("任务的数量为:---------------->" + list.size());} catch (SchedulerException e) {LOGGER.info("查询任务失败,原因是:------------------>" + e.getMessage());e.printStackTrace();}return list;}/*** * @Title: setSimpleTrigger* @Description: 简单调度* @param @param inputMap* @param @return    参数* @return Boolean    返回类型* @throws*/@SuppressWarnings({ "unchecked" })public void setSimpleTriggerJob(TaskInfo info) {LOGGER.info("TaskService--data-s-->setSimpleTriggerJob()" + info);String jobName = info.getJobName();String jobGroup = info.getJobGroup();String jobDescription = info.getJobDescription();Long milliSeconds = Long.parseLong(info.getMilliSeconds());Integer repeatCount = Integer.parseInt(info.getRepeatCount());Date startDate = DateUtil.parseDate(info.getStartDate());Date endDate = DateUtil.parseDate(info.getEndDate());try {TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);// 触发器的key值JobKey jobKey = JobKey.jobKey(jobName, jobGroup);// job的key值if (checkExists(jobName, jobGroup)) {LOGGER.info("===> AddJob fail, job already exist, jobGroup:{}, jobName:{}",jobGroup, jobName);throw new ServiceException(String.format("Job已经存在, jobName:{%s},jobGroup:{%s}", jobName,jobGroup));}/* 简单调度 */SimpleTrigger trigger = (SimpleTrigger) TriggerBuilder.newTrigger().withIdentity(triggerKey).startAt(startDate).withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(milliSeconds).withRepeatCount(repeatCount)).endAt(endDate).build();Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(jobName);JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(jobKey).withDescription(jobDescription).build();scheduler.scheduleJob(jobDetail, trigger);} catch (SchedulerException | ClassNotFoundException e) {LOGGER.info("任务添加失败!--->简单调度" + e.getMessage());throw new ServiceException("任务添加失败!--->简单调度");}}/*** * @Title: addJob* @Description: 保存定时任务* @param @param info    参数* @return void    返回类型* @throws*/@SuppressWarnings("unchecked")public void addJob(TaskInfo info) {LOGGER.info("TaskService--data-s-->addJob()" + info);String jobName = info.getJobName(), jobGroup = info.getJobGroup(), cronExpression = info.getCronExpression(), jobDescription = info.getJobDescription(), createTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");try {if (checkExists(jobName, jobGroup)) {LOGGER.info("===> AddJob fail, job already exist, jobGroup:{}, jobName:{}",jobGroup, jobName);throw new ServiceException(String.format("Job已经存在, jobName:{%s},jobGroup:{%s}", jobName,jobGroup));}TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);JobKey jobKey = JobKey.jobKey(jobName, jobGroup);CronScheduleBuilder schedBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withDescription(createTime).withSchedule(schedBuilder).build();Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(jobName);JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(jobKey).withDescription(jobDescription).build();scheduler.scheduleJob(jobDetail, trigger);} catch (SchedulerException | ClassNotFoundException e) {LOGGER.info("保存定时任务-->类名不存在或执行表达式错误--->复杂调度" + e.getMessage());throw new ServiceException("类名不存在或执行表达式错误");}}/*** * @Title: edit* @Description: 修改定时任务* @param @param info    参数* @return void    返回类型* @throws*/public void editJob(TaskInfo info) {LOGGER.info("TaskService--data-s-->editJob()" + info);String jobName = info.getJobName(), jobGroup = info.getJobGroup(), cronExpression = info.getCronExpression(), jobDescription = info.getJobDescription(), createTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");try {if (!checkExists(jobName, jobGroup)) {throw new ServiceException(String.format("Job不存在, jobName:{%s},jobGroup:{%s}",jobName, jobGroup));}TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);JobKey jobKey = new JobKey(jobName, jobGroup);CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withDescription(createTime).withSchedule(cronScheduleBuilder).build();JobDetail jobDetail = scheduler.getJobDetail(jobKey);jobDetail.getJobBuilder().withDescription(jobDescription);HashSet<Trigger> triggerSet = new HashSet<>();triggerSet.add(cronTrigger);scheduler.scheduleJob(jobDetail, triggerSet, true);} catch (SchedulerException e) {LOGGER.info("修改定时任务-->类名不存在或执行表达式错误--->复杂调度" + e.getMessage());throw new ServiceException("类名不存在或执行表达式错误");}}/*** * @Title: delete* @Description: 删除定时任务* @param @param jobName* @param @param jobGroup    参数* @return void    返回类型* @throws*/public void deleteJob(String jobName, String jobGroup) {LOGGER.info("TaskService--data-s-->deleteJob()--jobName:" + jobName+ "jobGroup:" + jobGroup);TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);try {if (checkExists(jobName, jobGroup)) {scheduler.pauseTrigger(triggerKey);scheduler.unscheduleJob(triggerKey);LOGGER.info("===> delete, triggerKey:{}", triggerKey);}} catch (SchedulerException e) {LOGGER.info("删除定时任务-->复杂调度" + e.getMessage());throw new ServiceException(e.getMessage());}}/*** * @Title: pause* @Description: 暂停定时任务* @param @param jobName* @param @param jobGroup    参数* @return void    返回类型* @throws*/public void pauseJob(String jobName, String jobGroup) {LOGGER.info("TaskService--data-s-->pauseJob()--jobName:" + jobName+ "jobGroup:" + jobGroup);TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);try {if (checkExists(jobName, jobGroup)) {scheduler.pauseTrigger(triggerKey);LOGGER.info("===> Pause success, triggerKey:{}", triggerKey);}} catch (SchedulerException e) {LOGGER.info("暂停定时任务-->复杂调度" + e.getMessage());throw new ServiceException(e.getMessage());}}/*** * @Title: resume* @Description: 恢复暂停任务* @param @param jobName* @param @param jobGroup    参数* @return void    返回类型* @throws*/public void resumeJob(String jobName, String jobGroup) {LOGGER.info("TaskService--data-s-->resumeJob()--jobName:" + jobName+ "jobGroup:" + jobGroup);TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);try {if (checkExists(jobName, jobGroup)) {scheduler.resumeTrigger(triggerKey);LOGGER.info("===> Resume success, triggerKey:{}", triggerKey);}} catch (SchedulerException e) {LOGGER.info("重新开始任务-->复杂调度" + e.getMessage());e.printStackTrace();}}/*** * @Title: checkExists* @Description: 验证任务是否存在* @param @param jobName* @param @param jobGroup* @param @return* @param @throws SchedulerException    参数* @return boolean    返回类型* @throws*/private boolean checkExists(String jobName, String jobGroup)throws SchedulerException {LOGGER.info("TaskService--data-s-->checkExists()--jobName:" + jobName+ "jobGroup:" + jobGroup);TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);return scheduler.checkExists(triggerKey);}}

    第六步:执行脚本

DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
DROP TABLE IF EXISTS QRTZ_LOCKS;
DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_TRIGGERS;
DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
DROP TABLE IF EXISTS QRTZ_CALENDARS;CREATE TABLE QRTZ_JOB_DETAILS(SCHED_NAME VARCHAR(120) NOT NULL,JOB_NAME  VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,DESCRIPTION VARCHAR(250) NULL,JOB_CLASS_NAME   VARCHAR(250) NOT NULL,IS_DURABLE VARCHAR(1) NOT NULL,IS_NONCONCURRENT VARCHAR(1) NOT NULL,IS_UPDATE_DATA VARCHAR(1) NOT NULL,REQUESTS_RECOVERY VARCHAR(1) NOT NULL,JOB_DATA BLOB NULL,PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
);CREATE TABLE QRTZ_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,JOB_NAME  VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,DESCRIPTION VARCHAR(250) NULL,NEXT_FIRE_TIME BIGINT(13) NULL,PREV_FIRE_TIME BIGINT(13) NULL,PRIORITY INTEGER NULL,TRIGGER_STATE VARCHAR(16) NOT NULL,TRIGGER_TYPE VARCHAR(8) NOT NULL,START_TIME BIGINT(13) NOT NULL,END_TIME BIGINT(13) NULL,CALENDAR_NAME VARCHAR(200) NULL,MISFIRE_INSTR SMALLINT(2) NULL,JOB_DATA BLOB NULL,PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
);CREATE TABLE QRTZ_SIMPLE_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,REPEAT_COUNT BIGINT(7) NOT NULL,REPEAT_INTERVAL BIGINT(12) NOT NULL,TIMES_TRIGGERED BIGINT(10) NOT NULL,PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);CREATE TABLE QRTZ_CRON_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,CRON_EXPRESSION VARCHAR(200) NOT NULL,TIME_ZONE_ID VARCHAR(80),PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);CREATE TABLE QRTZ_SIMPROP_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,STR_PROP_1 VARCHAR(512) NULL,STR_PROP_2 VARCHAR(512) NULL,STR_PROP_3 VARCHAR(512) NULL,INT_PROP_1 INT NULL,INT_PROP_2 INT NULL,LONG_PROP_1 BIGINT NULL,LONG_PROP_2 BIGINT NULL,DEC_PROP_1 NUMERIC(13,4) NULL,DEC_PROP_2 NUMERIC(13,4) NULL,BOOL_PROP_1 VARCHAR(1) NULL,BOOL_PROP_2 VARCHAR(1) NULL,PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);CREATE TABLE QRTZ_BLOB_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,BLOB_DATA BLOB NULL,PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);CREATE TABLE QRTZ_CALENDARS(SCHED_NAME VARCHAR(120) NOT NULL,CALENDAR_NAME  VARCHAR(200) NOT NULL,CALENDAR BLOB NOT NULL,PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
);CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS(SCHED_NAME VARCHAR(120) NOT NULL,TRIGGER_GROUP  VARCHAR(200) NOT NULL,PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
);CREATE TABLE QRTZ_FIRED_TRIGGERS(SCHED_NAME VARCHAR(120) NOT NULL,ENTRY_ID VARCHAR(95) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,INSTANCE_NAME VARCHAR(200) NOT NULL,FIRED_TIME BIGINT(13) NOT NULL,SCHED_TIME BIGINT(13) NOT NULL,PRIORITY INTEGER NOT NULL,STATE VARCHAR(16) NOT NULL,JOB_NAME VARCHAR(200) NULL,JOB_GROUP VARCHAR(200) NULL,IS_NONCONCURRENT VARCHAR(1) NULL,REQUESTS_RECOVERY VARCHAR(1) NULL,PRIMARY KEY (SCHED_NAME,ENTRY_ID)
);CREATE TABLE QRTZ_SCHEDULER_STATE(SCHED_NAME VARCHAR(120) NOT NULL,INSTANCE_NAME VARCHAR(200) NOT NULL,LAST_CHECKIN_TIME BIGINT(13) NOT NULL,CHECKIN_INTERVAL BIGINT(13) NOT NULL,PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
);CREATE TABLE QRTZ_LOCKS(SCHED_NAME VARCHAR(120) NOT NULL,LOCK_NAME  VARCHAR(40) NOT NULL,PRIMARY KEY (SCHED_NAME,LOCK_NAME)
);

    第七步:编写自定义任务(需实现Job接口

/**
* @Title: ReportMailBatch.java
* @Package com.ewp.data.batch
* @Description: 邮件汇报批
* @author zxj
* @date 2018年2月26日
* @version V1.0
*/
package com.ewp.data.batch;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import com.ewp.data.service.ReportMailService;/*** @ClassName: ReportMailBatch* @Description: 邮件汇报批* @author zxj* @date 2018年2月26日**/
@Component
public class ReportMailBatch implements Job{private static final Logger log = LoggerFactory.getLogger(ReportMailBatch.class);@Autowiredprivate ReportMailService service;@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {log.info("ReportMailBatch--data-c->execute()");service.sendReportMail();// 可换成自己业务逻辑log.info("--本次邮件汇报批处理结束--");}
}

    第八步:创建任务处理controller注入TaskService,将第七步编写的任务加入调度器,由线程调用执行。

  

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. DSP实时嵌入系统DSP/BIOS学习入门

    一、为何接触了DSP/BIOS? 为了得到某些DSP运行中的数据,在尝试了断点实时刷新、printf函数、保存在数组中等三种方式,由于我的系统属于高速时钟以及实时性要求较为严格,前两者直接pass,这两个操作非常费时间,实时性很差,后来了解到了DSP/BIOS这个神奇的方式,尽管最终由…...

    2024/4/21 0:49:44
  2. Linux定时任务Crontab命令详解

    linux 系统由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以,Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond 是linux下用来…...

    2024/4/21 0:49:41
  3. Quartz集群介绍和配置

    Quartz的集群功能通过故障转移和负载均衡功能为您的调度程序带来高可用性和可扩展性。 目前,群集仅适用于JDBC-Jobstore(JobStoreTX或JobStoreCMT),并且基本上通过使群集的每个节点共享相同的数据库来工作。Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的…...

    2024/5/5 18:39:20
  4. 三极管原理--我见过最通俗讲法

    http://www.51hei.com/bbs/dpj-40090-1.html 对三极管放大作用的理解,切记一点:能量不会无缘无故的产生,所以,三极管一定不会产生能量。 但三极管厉害的地方在于:它可以通过小电流控制大电流。 放大的原理就在于:通过小的交流输入,控制大的静态直流。 假设三极管是个大坝…...

    2024/5/5 21:59:23
  5. DSP28335入门教程:寄存器手册的下载

    2020.04.29更新TI官方最近更新的TMS320F28335用户指导手册,已经将全部功能模块统一到单个文档中:TMS320x2833x, TMS320x2823x Technical Reference Manual。该文档包括典型应用场景、部分代码例程和寄存器地址及功能描述,一本就全。以下是TI官网http://www.ti.com文档位置截…...

    2024/4/21 0:49:38
  6. Quartz应用——Spring和Quartz加线程池实际应用

    公司最近开发需要用到定时任务,引用了微服务的概念,但是开发还是spring相关的项目,没有用到SpringCloud相关的微服务框架。定时任务我就没选择xxx-job,Elastic-Job。选择了Quartz,简单方便而且拓展行也高。Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企…...

    2024/5/5 18:27:34
  7. centos7中crontab定时执行python脚本不生效

    问题: 最近在项目中遇到crontab中定时执行python脚本不生效,但是手动直接运行python脚本能够正常执行。 系统环境: centos7 python安装路径:/root/anaconda3/bin/python python脚本:/data/test/sftp.py crontab中添加定时任务:0 * * * * python /data/test/sftp.py 问题…...

    2024/5/5 21:15:37
  8. 三极管原理与应用

    三极管的三种状态也叫三个工作区域,即:截止区、放大区和饱和区。(1)、截止区:三极管工作在截止状态,当发射结电压Ube小于0.6—0.7V的导通电压,发射结没有导通集电结处于反向偏置,没有放大作用。(2)、放大区:三极管的发射极加正向电压(锗管约为0.3V,硅管约为0.7V),集电…...

    2024/4/21 0:49:35
  9. (多核DSP快速入门)4.编译测试多核DSP实例Vlfft

    原创文章 转载请注册来源http://blog.csdn.net/tostq 系列教程目录:http://blog.csdn.net/tostq/article/details/51245979Vlfft是由TI官网提供的一个大尺寸快速傅里叶变换的多核DSP实例,其下载地址如下:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicor…...

    2024/4/28 20:17:54
  10. Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    一、Linux系统安装crontab服务1.确认crontab是否安装# crontab -l如果报 “command not found” ,就说明该crontab服务没有安装如果报 “no crontab for root” ,就说明已经安装crontab服务了,请跳过步骤一,至于出现这个提示的解决办法请往下看。2.安装crontab服务centos系…...

    2024/5/3 22:49:46
  11. DSP28335入门教程:ADC to DMA 前篇(官方例程Example_2833xAdcToDMA的分析)

    前言DSP28335的官方例程其实是比较不错的,基本上各个功能都涉及到。(有没有人第一反应就是:哦,官方例程去哪里下载啊,我去TI官网找了几天都找不到?老笨觉得很多人都还不知道,DSP28335官方例程的下载方法,见《DSP28335入门教程:官方例程的下载》)主题本文就说说Exampl…...

    2024/5/5 20:54:56
  12. 华夏联盟社会工程技术学习

    0x01初始社会工程社会工程学(Social Engineering) 一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。取得自身利益的手法,近年来已成迅速上升甚至滥用的趋势。那么,什么算是社会工程学呢?它并不能等同于一般的欺骗手法,…...

    2024/4/21 0:49:32
  13. MOS管工作原理及特性

    转载于:http://www.elecfans.com/d/826748.html 什么是MOS管?MOS管的英文全称叫MOSFET(Metal Oxide Semiconductor Field Effect Transistor),即金属氧化物半导体型场效应管,属于场效应管中的绝缘栅型。因此,MOS管有时被称为绝缘栅场效应管。在一般电子电路中,MOS管通常被…...

    2024/4/27 7:54:06
  14. crontab 每天,每月,每年 定时启动,并添加日志

    crontab -e 进入定时任务 */1 * * * * sh /www/sh/im.sh >/www/log/crontab.log 2>&1 & */1 * * * * sh /www/sh/check-port-on-crontab.sh >/www/log/check-swool-port.log 2>&1 &其中,目录前面分别表示: 每五分钟执行 */5 * * * *每小时执行…...

    2024/5/5 19:31:16
  15. C#定时服务调用Quartz.net

    概述Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的…...

    2024/4/20 20:56:06
  16. 定点DSP与浮点DSP的比较(定点DSP和浮点DSP的定义)

    【 首先要理解什么是定点运算,浮点运算 你要知道DSP芯片是如何处理小数的 这就涉及的是小数的定标问题。数值的精度与数值的范围就成了一对矛盾了。 你要知道:支持浮点运算的DSP就是浮点DSP芯片,在这种片子上可以自由进行小数运算。而在定点DSP上是不能直接进行小数运算的,…...

    2024/4/20 20:56:05
  17. 《超越感觉》

    border="0" width="330" height="86" src="//music.163.com/outchain/player?type=3&id=908112038&auto=0&height=66">【 如何避开思考中的错误,掌握批判思考正确方法,看美国教授出品的行动指南。】 感觉总是无意识…...

    2024/5/5 18:07:00
  18. crontab使用教程

    一、什么是crontab crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(是“cron table”的简写),以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一…...

    2024/4/30 22:55:52
  19. 电子设计教程14:三极管的放大原理

    关于三极管的原理,前人之述备矣,本文只强调一点:三极管是电流型放大器件,放大基极电流。放大是对模拟信号最基本的处理,在实验和生产过程中,从传感器获得的电信号都很微弱,只有经过放大后才能作进一步的处理,或者使之具有足够的能量来推动执行机构。三极管是放大电路的…...

    2024/5/1 2:15:10
  20. C# Quartz作业调度配置

    什么是Quartz Quartz是一个开源的作业调度框架,Quartz根据用户设定的时间规则来执行作业,使用场景:在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知、定时关闭网上商城的用户还未支付的订单等等。 Quartz运用场景 作业场景:公司商…...

    2024/4/30 21:34:29

最新文章

  1. Navicat连接Mysql教程

    Navicat连接Mysql教程_navicat中mysqldump-CSDN博客 这篇文章写的非常好...

    2024/5/5 22:09:03
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 数据挖掘中的PCA和KMeans:Airbnb房源案例研究

    目录 一、PCA简介 二、数据集概览 三、数据预处理步骤 四、PCA申请 五、KMeans 聚类 六、PCA成分分析 七、逆变换 八、质心分析 九、结论 十、深入探究 10.1 第 1 步&#xff1a;确定 PCA 组件的最佳数量 10.2 第 2 步&#xff1a;使用 9 个组件重做 PCA 10.3 解释 PCA 加载和特…...

    2024/5/5 8:53:00
  4. 前端路径问题总结

    1.相对路径 不以/开头 以当前资源的所在路径为出发点去找目标资源 语法: ./表示当前资源的路径 ../表示当前资源的上一层路径 缺点:不同位置,相对路径写法不同2.绝对路径 以固定的路径作为出发点作为目标资源,和当前资源所在路径没关系 语法:以/开头,不同的项目中,固定的路径…...

    2024/5/5 8:25:26
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/4 23:55:17
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/4 18:20:48
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57