JAVA程序定时运行_hanCSDN_20130424
来源:互联网 发布:深圳cnc编程招聘 编辑:程序博客网 时间:2024/06/05 23:56
1.建一个web工程。
2.建立一个Servlet类,并配置web.xml。
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>wslyjk</display-name> <!-- 从接口获取网上留言 --> <servlet> <servlet-name>servletgetwsly</servlet-name> <servlet-class>com.zrar.servlet.ServletGetWsly</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>servletgetwsly</servlet-name> <url-pattern>/servletgetwsly</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.zrar.wslyjk.service.GetWslyService;/** * 外网留言数据导入 */public class ServletGetWsly extends HttpServlet{private static final long serialVersionUID = 1L;private static final String CONTENT_TYPE = "text/html; charset=GBK";@Overridepublic void init() throws ServletException {int iInterval = 10; try { iInterval = Integer.valueOf(PropertyManager.getProperty("intervalTime")). intValue(); } catch (Exception e) { System.out.println("参数[interval]设置错误,必须为整数"); iInterval = 10; } GetWslyService getWsly = new GetWslyService(iInterval); //间隔 10 秒执行 getWsly.start();}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>ServletLuceneGateWay</title></head>"); out.println("<body bgcolor=\"#ffffff\">"); out.println("<p>The servlet has received a GET. This is the reply.</p>"); out.println("</body></html>");}@Overridepublic void destroy() {}}
4.GetWslyService类
import java.util.Timer;import java.util.TimerTask;import com.zrar.system.Log;/** * * @author hanjun * 功能:根据webservice地址获得外网留言数据,并存入12333数据库中 * */public class GetWslyService {private final Timer timer = new Timer(); //定时器 private final int minutes; //间隔时间,单位为分钟 /** * 构造函数 * @param minutes int */ public GetWslyService(int minutes) { this.minutes = minutes; } /** * 数据操作程序的入口 * 定时器开始执行 * */ public void start() { timer.schedule(new TimerTask() { java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public void run() { Log.print(formatter.format(new java.util.Date()) + ":Timer Start................................."); startGetWslyService(); Log.print(formatter.format(new java.util.Date()) + ":Timer Stop................................."); } } , 0, minutes * 1000); } /** * 开始lucene导库网关 */ public void startGetWslyService() { Log.print("开始从远程Webservice导入数据..........................."); try { //开始处理业务 }catch(Exception e) { Log.print("导入数据异常..........................."); } Log.print("结束导入数据..........................."); }}
总结:web项目的servlet可以在web工程被发布时就自启动,然后再调用其他类,主要通过java.util.timer类来定时执行程序。
增加可以控制什么时候启动的:
package com.zrar.test;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Test {private static int P_HOUR = 23; //执行任务开始时间(时) private static int P_MINUTE = 0; //执行任务开始时间(分) private static int P_SECOND = 0; //执行任务开始时间(秒) private static long delay; //延时时间值(当前系统时间到下载时间之间的时间差毫秒数)public static void main(String[] args) {init();}/** * 初始化参数 * * @return */ public static void init(){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//声明一个Calendar对象 Calendar cal = Calendar.getInstance(); //设置时间 cal.set(Calendar.HOUR_OF_DAY, P_HOUR); cal.set(Calendar.MINUTE, P_MINUTE); cal.set(Calendar.SECOND, P_SECOND); Date date = new Date(); //获取设定的时间 date = cal.getTime(); //声明当前时间 Date now = new Date(); //获取设定的时间和当前的时间差(毫秒数) long interval = date.getTime() - now.getTime(); //如果当前时间大于下载时间,则将下载时间设置为下一个下载时间 if (interval < 0) { cal.add(Calendar.DAY_OF_MONTH, 1);//将天数加1 date = cal.getTime(); //获取设定的时间和当前的时间差(毫秒数) interval = date.getTime() - now.getTime(); } //初始化开始下载时间 delay = interval;//初始化当前时间到下载时间之间的时间差 }}
- JAVA程序定时运行_hanCSDN_20130424
- Java中定时运行程序
- java 让程序定时运行
- 定时运行一个Java程序的方法
- 如何让Java程序定时运行
- Linux下定时运行java程序
- ubuntu下定时运行java程序
- 定时运行程序
- 计算机定时运行程序
- Linux下定时运行java程序的做法
- 在linux下执行定时任务运行一个java程序
- 可定时程序运行限制器
- cron定时运行jar程序
- 创建服务器定时运行程序
- 【VBA】VBA定时运行程序
- 【理解】如何定时运行程序
- Windows定时运行python程序
- java定时程序[摘]
- 深入理解java虚拟机读书笔记之-----安全(2)
- mysql索引的优点和缺点以及分类
- tar ,rpm,yum指令
- 深入理解java虚拟机读书笔记之-----安全(3)
- gdb文档
- JAVA程序定时运行_hanCSDN_20130424
- mysql外键
- .Net之路(三)如何连接数据库?
- .NET 下运用策略模式
- Tomcat的编码设置
- 深入理解java虚拟机读书笔记之-----Java虚拟机
- zend Studio的使用
- strcpy详解
- Visual C++ 用户 使用 ADO 文档的方法