第一步:编写java代码
@Service("BaseDataTask")
public class BaseDataTask {
private static Logger logger = Logger.getLogger(BaseDataTask.class.getName());
@Resource
private TAreaMapper areaMapper;
private String ftpIP = "";// ftp地址
private String userName = "";// 用户名
private String userPwd = ""; // 密码
private int ftpPort = 21;// ftp端口号
FTPClient fc = null;//ftp对象
BufferedReader bufferedReader = null;
InputStream fget = null;
String fileName="";//文件名
public void BaseDataTask() {
downloadArea();//区域
}
public boolean downloadArea() {
boolean success = false;
try {
SimpleDateFormat fileDate = new SimpleDateFormat("yyyyMMdd");
String nowDate = fileDate.format(new Date());//当前日期
String newName="area_"+nowDate+".txt";//文件名
int reply;
fc = new FTPClient();// ftp客户端对象
fc.connect(ftpIP,ftpPort);// 连接ftp服务器
fc.login(userName, userPwd);// 登录ftp服务器
//判断登陆是否成功
reply = fc.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
fc.disconnect();
}
FTPFile[] fs = fc.listFiles();//ftp下的所有文件名称
for (FTPFile ftpfile : fs) { //遍历所有文件
fileName = ftpfile.getName();
if (fileName.equals(newName)) {
logger.info("********" + nowDate + ":开始下载区域信息数据!");
//logger.info("------------数据库操作---------");
String userID = "admin";
String read;//每一行数据
int lineNo = 1;//行数
String areaname = "";//区域名称
String fareaname = "";//所属上级区域名
TArea area = new TArea();
fget = fc.retrieveFileStream(newName);// 读取ftp远程文件数据
bufferedReader = new BufferedReader(new InputStreamReader(fget, "UTF-8"));
bufferedReader.readLine();//先执行一次,除去标题的内容
lineNo++;
while ((read = bufferedReader.readLine()) != null) {
//这个里面就写数据库操作步骤
lineNo++;
}
logger.info("********" + nowDate + ":结束下载区域信息数据!");
success=true;
}
success = false;
}
// 退出登陆
fc.logout();
} catch (IOException e) {
try {
bufferedReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return success;
}
}
第二步:在spring配置文件头中添加命名空间及描述
xml代码:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">
第三步:在spring配置文件中配置定时任务
xml代码:
<task:scheduler id="myScheduler" pool-size="5" />
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="BaseDataTask" method="BaseDataTask" cron="0 * 22 * * ?"/>
</task:scheduled-tasks>