zoukankan      html  css  js  c++  java
  • 微博和qq说说定时发送畅想

    一个简单的定时发送畅想

    要给微博或者说说加上定时功能

    首先 要给数据库相关表加上时间字段和状态字段

    时间字段:2012-05-11  12:50:00

    状态      :0和1

    0表示已发送

    1表示定时的未发送的

    首先用户定义一个定时说说 插入一条数据 插入定义的时间

    id  useid   content  senddatetime                    state
    1   001     正常的说说   2012-05-11  12:50:00     0
    2   001     定时的说说   2012-05-11  13:30:00     1

    现在在Global.asax 里的Application_Start定义timer

    让1分钟执行一次 因为定时设置精确到分钟级

        protected void Application_Start(Object sender, EventArgs e)
        {
    
            Timer t = new Timer(60000);//设计时间间隔,如果一个小时执行一次就改为3600000 ,这里一分钟调用一次
            t.Elapsed += new ElapsedEventHandler(t_Elapsed);
            t.AutoReset = true;
            t.Enabled = true;
        }
         private void t_Elapsed(object sender, ElapsedEventArgs e)
        {
          //这里执行逻辑代码
        }
    t_Elapsed这个函数是委托参数 里边执行一个存储过程
    查询出来所有用户的state=1的并且senddatetime<当前时间的id  然后批量修改符合记录的state=0
    也就是每隔一分钟执行一次
    update qquser set state=0 where senddatetime<getdate() and state=1

    state=0的是大家包括自己可以看到的 state=1只有自己可以看到并且有声明(此条记录是定时说说) 别人看不到


    这个还可以用sql的作业来搞定

    当然还有更多的办法!!

    希望大家给出各种思路.


    哦 对了 要注意:
    Application对象是有生命周期的,当网页没人访问或闲置过久,应用程序池会调用Application_End方法回收applicatioin里的对象资源,导致定时器无法工作。

    解决办法看这里:http://www.cnblogs.com/liguangxi8/archive/2010/01/03/1638528.html(定时发送邮件例子)

     

     

  • 相关阅读:
    2018-10-20-WPF-通过位处理合并图片
    2019-2-11-WPF-获取应用的所有窗口
    2019-2-11-WPF-获取应用的所有窗口
    2018-8-10-WPF-如何在绑定失败异常
    2018-8-10-WPF-如何在绑定失败异常
    类和对象
    类和对象
    什么是可串行化MVCC
    LeetCode-环形链表|+环形链表||
    用js仿探探拖拽卡片的效果、飞卡片的效果,感觉挺酷,最后有美女看哦!
  • 原文地址:https://www.cnblogs.com/0banana0/p/2495839.html
Copyright © 2011-2022 走看看