解决方案 »

  1.   

    可以用数据库的存储过程去做,只是比较麻烦。如果你要用Java去做的话,可以在每天0点启动一个定时器(Timer)去扫描数据库里面哪些用户是注册了10天未交费的,发邮件就可以了。关于Timer可以百度一下、。
      

  2.   


           Timer timer = new Timer();
            int start = 5 * 60 * 1000;
            int interval = 60 * 60 * 1000;
            timer.schedule(new TimerTask() {            @Override
                public void run() {
                    //TODO
                }
            }, start, interval);
      

  3.   

    如何固定时间,timer.schedule(new Task(), time,5*1000); ,例如早上的10点。
    我设置一天检查一次可以吗?这样线程一直占用着会不会耗性能?
      

  4.   

    没做过推送,不知道,Timer 线程占用,会不会耗性能?
      

  5.   

    在项目里配置了监听,监听正常启动 ,运行。package com.spyglass.authorize.listener;import java.util.Timer;
    import java.util.TimerTask;import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;import org.apache.log4j.Logger;
    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;import com.spyglass.authorize.hbm.dao.TableUserDAO;public class CheckTrialProLisener implements ServletContextListener{ public static final Logger logger = Logger.getLogger(CheckTrialProLisener.class);
    private Timer timer =null;
    private WebApplicationContext springContext;
    private TableUserDAO tableUserDao;

    public void contextDestroyed(ServletContextEvent sce) {
    timer.cancel();
    System.out.println("timer destroyed  ......");
    logger.debug("timer destroyed  ......");
    } public void contextInitialized(ServletContextEvent sce) {
      springContext = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());//为null
      if(springContext != null){
      tableUserDao = (TableUserDAO)springContext.getBean("TableUserDAO");
      int size = tableUserDao.findAll("TRIALPRO").size();
      System.out.println("get bean success trialPro size is = "+size);
      }else{
      System.out.println("getBean failed ");
      }
      
    timer = new Timer();
    timer.schedule(new PrialProTask(), 14*1000,5*1000);
    logger.debug("CheckTrialProLisener contextInitialized method !");
    }

    private class PrialProTask extends TimerTask{ public void run() {
    System.out.println("this is PrialTask ......");
    logger.debug("CheckTrialProLisener run !");
    }

    }
    }
    springContext  获取不到,
    springContext  获取不到就获取补到Dao,无法进行下一步操作。
      

  6.   

     你都用到spring ,怎么不用spring   的job
      

  7.   

    定时器,每天定点查询数据库扫描
    Timer timer=new Timer();   
    timer.schedule(new ListByDayTimerTask(),10000,86400000);   
    每隔一段时间扫描一次  执行ListByDayTimerTask的run方法 ,需要执行main方法人工启动或者写个监听ServletContextListener 在web.xml配置一下,启动项目后自动监听扫描
      

  8.   

    spring 有一个定是框架 你这需求完美满足