當前位置:首頁 >  站長 >  網(wǎng)站運營 >  正文

PHP定時任務程序設計:愛上文學網(wǎng)電子雜志郵件任務

 2010-12-14 16:11  來源:   我來投稿 撤稿糾錯

  域名預訂/競價,好“米”不錯過

在上周哈維硬件網(wǎng)改用新的新聞發(fā)布平臺后,由于暫時的需要,原有的新聞平臺并沒有徹底停止使用,所以在新平臺開始使用后便發(fā)現(xiàn)一個讓人頭痛的問題,網(wǎng)站首頁總是被更新為原來的系統(tǒng)內容,最終導致某此新聞鏈接不能正常訪問。新系統(tǒng)對URL做了優(yōu)化,新聞頁面的網(wǎng)址和原系統(tǒng)不同。最初的時候以為是仍舊有人在使用舊的系統(tǒng)操作,可在第二天這樣的情況仍舊出現(xiàn),便想到應當是舊系統(tǒng)的問題,后來檢查發(fā)現(xiàn)帝國CMS系統(tǒng)有一個默認的刷新首頁的任務,取消后網(wǎng)站首頁的更新便正常了。

解決這個問題后,我對PHP任務有了興趣,以前也有所了解,但卻沒有真正的去實踐,也許是考慮到這個功能對網(wǎng)站系統(tǒng)開發(fā)的重要性,所以現(xiàn)在決定研究一下,并編寫一套成熟的代碼以便于以后應用。

首先是上網(wǎng)查找相關的資料,通過閱讀這些資料,知道了PHP任務大體上可以分為三類。

服務器計劃任務

WIN服務器可以直接使用定時任務執(zhí)行相關的應用程序,LINUX服務器則可以通過在/etc/crontab里添加定時任務來實現(xiàn)。

通過死循環(huán)實現(xiàn)任務自動執(zhí)行

建立一個程序文件頁面,通過ignore_user_abort來設置關閉瀏覽器頁面后仍可執(zhí)行,那么,在運行該程序頁面后,您所需要的任務計劃便會一直自動執(zhí)行。對于一般的PHP程序員來說,如果沒有足夠的把握,這種操作是不被允許的,因為死循環(huán)極容易使用服務器當機。

觸發(fā)式定時任務

在我所了解的幾套程序中,像Discuz、帝國CMS等等,均使用這種方式來完成系統(tǒng)的定時任務,相對前面的兩種方法,這是最為安全和簡單的。

有這么多選擇,那么在設計程序的時候應當根據(jù)實際的需要選擇最為恰當?shù)姆绞饺プ龀绦?。下面就用實例做個介紹。

愛上文學網(wǎng)的電子雜志在網(wǎng)站上線不久便制作出來了,這是通過電子郵箱傳遞的電子雜志,將最新一期的電子雜志發(fā)送到訂閱用戶的郵箱里是一個龐大的工作,單純的頁面批量發(fā)送顯然是行不通的。主要原因是目前還沒有自己的郵件服務器,像新聞、騰訊以及163所提供的郵箱,盡管支持SMTP發(fā)送郵件,但卻不允許大批量的發(fā)送電子郵件,條件有限,那么就只能通過程序來解決這個問題。

首先,我選擇觸發(fā)式定時任務,為了避免發(fā)送郵件的程序不影響用戶訪問網(wǎng)站的體驗,主要是打開網(wǎng)站頁面的速度,因此選擇使用AJAX來實現(xiàn)觸發(fā)。在公共JS文件里增加觸發(fā)函數(shù),用戶在訪問任何頁面的時候便可以觸發(fā)郵件發(fā)送任務。

為了限定郵件發(fā)送的頻率,防止因為過度頻繁發(fā)送郵件被郵件服務器禁止,在程序上也做了時間的限制,使用RAND隨機生成一個等待時間,解決發(fā)送郵件不是固定間隔時間,實際上觸發(fā)模式中間隔時間本來就不確定,但當網(wǎng)站訪問量大的時候,還是有可能出現(xiàn)這樣的問題,所以加一下這方面的設置還是比較穩(wěn)妥。

盡管有了上面的一些措施,在實際應用中還是發(fā)現(xiàn)會被郵件服務器禁止發(fā)送郵件,但不是永久禁止。解決這個問題的辦法是建立一個數(shù)組,將不同的郵件服務SMTP參數(shù)保存起來,當一個郵件服務器不能正常發(fā)送郵件的時候,則會自動跳轉使用另一個郵件服務器。

在所收集的郵箱地址列表中,會有一些無效的地址,在發(fā)送郵件的過程中,如果一次發(fā)送不同功,則切換另一個郵件服務器再次發(fā)送,如果均不成功,則將這個郵件地址設為無效,以后便不會再向這個地址發(fā)送郵件,從而提高郵箱地址列表的有效率,也為下次發(fā)送郵件節(jié)省了時間。

有朋友說我太小氣,在這類日志里分享的代碼太少,其實我們上網(wǎng)查資料的時候便會發(fā)現(xiàn),許多網(wǎng)站分享的代碼并不一定實用,有時候還會因為參考這些代碼而耽誤了許多時間,所以我在總結的時候往往總結解決問題的方法,并把關鍵的技術參數(shù)記下,以便于以后再遇到類似的問題自己也有了可以參考的信息。如果你有這方面的問題,可以通過留言、電子郵件和我聯(lián)系。

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

  • Rushmail:電子雜志的郵件群發(fā)方式

    在知識經濟的時代中,知識就是能力,因此給讀者提供知識的行業(yè)和企業(yè)逐漸增多。隨著移動互聯(lián)網(wǎng)時代的到來,人們越來越習慣用手機等移動端設備進行獲取知識或接收信息,大部分企業(yè)都會采用電子郵件群發(fā)的方式,給會員們推送資訊雜志

  • 郵件群發(fā)電子雜志贏在靈活、個性和互動

    在知識經濟時代,知識就是一種生產力,因此給讀者提供知識消費的行業(yè)組織和專業(yè)機構越來越多,他們通常采取電子郵件群發(fā)的方式,給會員們推送資訊。最近一家電子行業(yè)協(xié)會利用U-Mail郵件營銷平臺豐富的功能,將DM電子雜志辦得內容詳實、風格斑斕多姿,點擊率節(jié)節(jié)攀升。電子雜志的興起,與移動互聯(lián)網(wǎng)時代的到來不無關

    標簽:
    電子雜志
  • 最方便最簡單的在線電子雜志制作

    隨著中國移動互聯(lián)網(wǎng)的壯大發(fā)展,人們開始慢慢改變本來的傳統(tǒng)書本閱讀習慣,轉向用電腦和手機閱讀接收信息。這就讓電子雜志市場的需求量變得大了,企業(yè)和個人都可以用很小的成本通過第三方網(wǎng)站出版托管自己的雜志。目前國內像這類的文檔托管網(wǎng)站很多,比如百度文檔,豆丁,但這些網(wǎng)站的用戶閱讀體驗效果很不好。所以有沒有一

    標簽:
    電子雜志
  • Phpwind推電子雜志《站長天下》 網(wǎng)羅站長故事

    8月24日消息,阿里巴巴旗下phpwind今日正式發(fā)布《站長天下》(http://zz.phpwind.com/)創(chuàng)刊號。這是一份關注中小站長、行業(yè)、運營,網(wǎng)羅天下站長故事的電子雜志。據(jù)了解,借助《站長天下》,phpwind可以幫助站長降低準入的

熱門排行

信息推薦