微博和qq说说定时发送畅想
生活随笔
收集整理的這篇文章主要介紹了
微博和qq说说定时发送畅想
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一個(gè)簡單的定時(shí)發(fā)送暢想
要給微博或者說說加上定時(shí)功能
首先 要給數(shù)據(jù)庫相關(guān)表加上時(shí)間字段和狀態(tài)字段
時(shí)間字段:2012-05-11 ?12:50:00
狀態(tài) ? ? ?:0和1
0表示已發(fā)送
1表示定時(shí)的未發(fā)送的
?
首先用戶定義一個(gè)定時(shí)說說 插入一條數(shù)據(jù) 插入定義的時(shí)間
id ?useid ? content ?senddatetime ? ? ? ? ? ? ? ? ? ?state
1 ? 001 ? ? 正常的說說 ??2012-05-11 ?12:50:00 ? ? 0
2 ? 001 ? ? 定時(shí)的說說 ??2012-05-11 ?13:30:00 ? ? 1
?
現(xiàn)在在Global.asax 里的Application_Start定義timer
讓1分鐘執(zhí)行一次 因?yàn)槎〞r(shí)設(shè)置精確到分鐘級
protected void Application_Start(Object sender, EventArgs e){Timer t = new Timer(60000);//設(shè)計(jì)時(shí)間間隔,如果一個(gè)小時(shí)執(zhí)行一次就改為3600000 ,這里一分鐘調(diào)用一次t.Elapsed += new ElapsedEventHandler(t_Elapsed);t.AutoReset = true;t.Enabled = true;}private void t_Elapsed(object sender, ElapsedEventArgs e){ //這里執(zhí)行邏輯代碼} t_Elapsed這個(gè)函數(shù)是委托參數(shù) 里邊執(zhí)行一個(gè)存儲過程查詢出來所有用戶的state=1的并且senddatetime<當(dāng)前時(shí)間的id ?然后批量修改符合記錄的state=0
也就是每隔一分鐘執(zhí)行一次 update qquser set state=0 where senddatetime<getdate() and state=1
state=0的是大家包括自己可以看到的 state=1只有自己可以看到并且有聲明(此條記錄是定時(shí)說說) 別人看不到
這個(gè)還可以用sql的作業(yè)來搞定
當(dāng)然還有更多的辦法!!
希望大家給出各種思路.
哦 對了 要注意:
Application對象是有生命周期的,當(dāng)網(wǎng)頁沒人訪問或閑置過久,應(yīng)用程序池會調(diào)用Application_End方法回收applicatioin里的對象資源,導(dǎo)致定時(shí)器無法工作。
解決辦法看這里:http://www.cnblogs.com/liguangxi8/archive/2010/01/03/1638528.html(定時(shí)發(fā)送郵件例子)
?
?
?
總結(jié)
以上是生活随笔為你收集整理的微博和qq说说定时发送畅想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: contos8大小写和键盘相反
- 下一篇: jQuery UI 添加法定节假日显示