今天在空闲之余查了一下关于MySql数据库备份的方案,最后结合自己的项目情况写了一个关于Spring计划任务的例子,目前我这个版本是在Windwos下测试成功,希望对大家有所帮助,不足之处还请大家多多包含,有什么建议尽管提出,我会第一时间回复大家,谢谢!
1.首先第一步要搭建Spring3.x的环境,这里就不多说,直接上代码:
package cn.gov.csrc.report.action;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.context.annotation.Scope;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Controller;
import cn.gov.csrc.report.service.CaseService;
@Controller()
@Scope("prototype")
@Action("TimerAction")
public class TimerAction extends QuartzJobBean {
private int timeout;
private static int i = 0;
private CaseService caseService;
public TimerAction() {
}
/**调度工厂实例化后,经过timeout时间开始执行调度*/
public void setTimeout(int timeout) {
this.timeout = timeout;
}
@Resource
public void setCaseService(CaseService caseService) {
this.caseService = caseService;
}
@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
System.out.println("定时任务执行中......");
JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
System.out.println(jobDataMap+"-------");
}
public void start() {
//备份mysql数据库
Runtime runtime = Runtime.getRuntime();
System.out.println("备份数据库任务开始了......");
String cmd = "mysqldump -h localhost -uroot -proot springdb > e:/springdb.sql";//一定要加-h localhost(或是服务器IP地址)
try {
Process process = runtime.exec("cmd /c" + cmd);
InputStreamReader inputStreamReader = new InputStreamReader(process.getErrorStream());
LineNumberReader lineNumberReader = new LineNumberReader(inputStreamReader);
String line;
while((line = lineNumberReader.readLine()) != null){
System.out.println(line+"----------------");
}
System.out.println("备份成功");
} catch (IOException e) {
System.out.println("备份失败");
e.printStackTrace();
}
System.out.println("备份数据库任务结束了......");
}
}
2.配置计划任何的配置文件,这里是使用的是quartz插件实现计划任务:
<!-- 任务计划 -->
<!-- 要调用的工作 -->
<bean id="timerAction" class="cn.gov.csrc.report.action.TimerAction"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="timerAction"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>start</value>
</property>
<!-- 作业不并发调度 -->
<property name="concurrent" value="false"/>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每天晚上11点59分钟59秒执行一次 -->
<!-- <value>0 59 23 * * ?</value> -->
<!-- 每天上午11点04分钟59秒执行一次-->
<value>0 04 11 * * ?</value>
</property>
</bean>
<!-- 总管理类,如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
</list>
</property>
</bean>
3.最后附上quartz的jar包,有需要的朋友可以下载,加到你们的Spring环境中句可以使用了,这个是8.6的:http://pan.baidu.com/s/1dDuvSwp
还有一个quartz时间格式的工具,可以任意改变时间格式:下载地址:http://pan.baidu.com/s/1o6M3PB8
分享到:
相关推荐
Springboot整合Quartz实现定时任务数据库动态配置,新增任务、修改cron表达式、暂停任务、恢复任务、删除任务等操作
1. 使用定时任务调用mysqldump命令实现mysql数据库数据库备份。 2. 通过rabbitmq发送消息给客户端。让客户端拉取备份数据
7.MyCAT:一个彻底开源的,面向企业应用开发的“大数据库集群”支持事务、ACID、可以替代Mysql的加强版数据库,可以低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的...
19.系统集成了定时器功能,方便二次开发的用户进行定时执行任务操作,例如:备份数据库、发送邮件等。 20.系统支持用户注册、登录、忘记密码找回、邮件激活绑定等功能。 21.实现了系统注册用户之间的即时聊天功能...
数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 以SpringMVC+Spring+Hibernate+Freemarker+Shiro+Lucene+Html5+jQuery为技术核心架构. 主要功能:内容管理、论坛管理、文档发布、文档审核、模板管理、 ...
(简历管理、数据库备份) 8、统计。(流量分析、受访访问、访问日志) 9、用户。(用户管理、角色管理、会员组管理、组织管理、全局用户管理、全局组织管理) 10、系统。(网站设置、系统设置、站点管理、模型...
- 每天定时备份数据库 ### 安装部署需求 - 可以使用docker方式部署,也可支持-jar方式 - 使用springboot自带方式打包 ## 非功能性需求 ### 性能需求 - 首页响应的时间不超过1秒钟 - 文章页响应时间不超过1秒钟 #...
数据维护:mysql数据库备份与还原。2、运维监控定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。令牌管理:用户登录token管理。数据监控: 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能...
Quartz数据库连接池:Druid 1.10.1数据库: Mysql5.7分布式缓存数据库: Redis 4.0.9工具类:Hutool 4.5.8工作流引擎:flowable 6.4.2J2eeFAST安装教程:1、需要准备环境Mysql5.7以上、JDK1.8、Maven3.3、Redis4.X以上...
数据库定时备份 多驱动图片上传(Native/阿里云oss/腾讯cos) 多驱动邮件发送(SMTP/阿里云) 图形验证码 CSRF/XSS 单元测试 全文搜索 限流控制 技术栈 Tailwind / Webpack / React Spring Boot / Thymeleaf / MyBatis /...