日期:2014-05-17  浏览次数:20760 次

定时器
我在一个页面存了信息和设置了时间(可以存多个信息和设置多个时间的)。我现在希望做一个每隔10分钟就扫描一下那个设置时间是否有到时(里面肯定不可能只有一个而是多个)。到时了就触发其他的事件,没到时间就继续每隔10分钟扫描。
  望各位大虾帮帮忙发下代码给小弟参考下。谢谢了。
  在线等待中······

------解决方案--------------------
利用timer或其他的定时框架建立定时任务!
------解决方案--------------------
http://www.cnblogs.com/wyqtomorrow/archive/2007/04/28/730978.aspx
------解决方案--------------------
Java code

    public static void main(String ss[]) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        Runnable doThing = new Runnable() {
            public void run() { System.out.println("dddd"); }
        };
        scheduler.scheduleAtFixedRate(doThing, 0, 3, TimeUnit.SECONDS);


    }

------解决方案--------------------
探讨
Java code

public static void main(String ss[]) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Runnable doThing = new Runnable() {
pub……

------解决方案--------------------
写个 线程 线程里面执行你的逻辑
配置 web.xml 监听线程
------解决方案--------------------
http://wangguorui89.javaeye.com/blog/428345
关注一下
------解决方案--------------------
我 的博客:
http://lialiks.bokee.com/6335210.html
呵呵
------解决方案--------------------
SPRING 有支持的定时器 可以百度下

------解决方案--------------------
用监听
------解决方案--------------------
Java code
package com.jx.sms.tools;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

/**
 * 定时发送处理
 * 
 * @author Administrator
 * 
 */
public class MyTask extends TimerTask {

    public void run() {
        // System.out.println("call at " + (new Date()));
        Connection conn = DataBase_local.getConn();
        Statement stmt = null;
        ResultSet rs = null;
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery("select * from unsendsms");
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.util.Calendar c1 = java.util.Calendar.getInstance();
            java.util.Calendar c2 = java.util.Calendar.getInstance();
            String d1 = df.format(new Date());

            while (rs.next()) {
                String d2 = rs.getString("sendTime");// 获取短信的发送时间
                c1.setTime(df.parse(d1));
                c2.setTime(df.parse(d2));
                int result = c1.compareTo(c2);// 比较大小
                if (result == 0 || result > 0) {
                    SMS.send(rs.getString("telphone") + ",", rs
                            .getString("messageContent"), rs.getInt("smsType"));
                    // 发送待发短信

                    Statement stmt1 = conn.createStatement();
                    stmt1.execute("delete from unsendsms where id='"
                            + rs.getInt("id") + "'");// 发送完成后删除待发短信
                    stmt1.close();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("call at " + (new Date()) + " database error");
            return;
        } finally {
            try {
                rs.close();
                stmt.close();