今天在空闲之余查了一下关于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插件实现计划任务:
start
0 04 11 * * ?
3.最后附上quartz的jar包,有需要的朋友可以下载,加到你们的Spring环境中句可以使用了,这个是8.6的:http://pan.baidu.com/s/1dDuvSwp
还有一个quartz时间格式的工具,可以任意改变时间格式:下载地址:http://pan.baidu.com/s/1o6M3PB8