微博和qq说说定时发送畅想
生活随笔
收集整理的這篇文章主要介紹了
微博和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(定時發送郵件例子)
?
?
?
總結
以上是生活随笔為你收集整理的微博和qq说说定时发送畅想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: contos8大小写和键盘相反
- 下一篇: jQuery UI 添加法定节假日显示