要做一個類似的功能:
如設定一個日期每月20號,在這日期的前幾天來提醒用戶該送禮了。
日期可以設定為幾月幾日、也可為每月幾號等。提醒時間可以是當天提醒、前一週提醒等?
這種功能後台資料庫該如何設計,需要幾張表? 訊息推播功能有了,如何偵測什麼時候推送? 後台寫個定時任務來不斷運作?
要做一個類似的功能:
如設定一個日期每月20號,在這日期的前幾天來提醒用戶該送禮了。
日期可以設定為幾月幾日、也可為每月幾號等。提醒時間可以是當天提醒、前一週提醒等?
這種功能後台資料庫該如何設計,需要幾張表? 訊息推播功能有了,如何偵測什麼時候推送? 後台寫個定時任務來不斷運作?
兩個定時任務,三個表
1.禮物表,裡面有什麼時候發送字段,是否發送字段
2.消息表,是否發送,發送的是什麼,發送給誰
3.消息人表,每個人的訊息這提取
任務一,掃描任務表,如果沒發送且到時間了,插入一條數據到消息表
任務二,掃描消息表,有消息了就根據系統發送消息,,,,,他是個公用表,不一定就用來寄禮物
需要判斷應用程式環境,在web存取,再使用者存取時去做判斷.
需要幾張表看你們具體業務需求,業務需求不複雜的一張資訊表足矣。你要是設定定時的肯定需要設定腳本的。或是用第三方推極光推播都可以的
資料字典
1 使用者資訊表以欄位is_accept 來存放使用者是否開啟訊息提示
2 建立訊息推播設定表
id 主鍵
task_obj擴充欄位
title 標題
content 內容
on_time 結束時間
status 平台是否開啟訊息提示
days 提前幾天提醒用戶訊息表,讓使用者來決定何時提示他)
tips 推播幾次
interval_time 推播間隔(同一個使用者多久推一次)
3 訊息推播日誌表
id 主鍵id
uid 使用者id
tid 配置訊息設定id
on_time 傳送訊息推送時間
4 php業務邏輯
//取得要使用者表is_accept為1的所有使用者循環
<code> foreach{ //获取推送配置信息表 //判断用户是否已推送, //判断 当前时间-用户上次推送时间>=配置间隔时间 //判断是否已达到最大推送次数 //写入推送记录表 }</code>
5 實作
如果是linux系統 建議使用系統指令curl
windows系統 建議自己寫程式守護,或是使用urlcron