mysql - PHP定時任務,在某個操作執行後,計時兩個小時然後給用戶發短信。
ringa_lee
ringa_lee 2017-05-16 13:04:54
0
9
767

需求是,在使用者進行了一個操作之後,倒數兩個小時,然後到時間點執行另一個操作

但是現在沒有辦法來進行這兩個小時的計時。

請問有沒有什麼好的思路

ringa_lee
ringa_lee

ringa_lee

全部回覆(9)
巴扎黑

我的思路是,透過佇列延遲分發一個任務,就是2小時後觸發,然後在任務中發送一個簡訊即可。
以下是文檔連結:

  • 隊列延遲分發

  • 簡訊通知

PHPzhong

建一張表,存用戶手機號,簡訊內容,應發送的時間。
用戶點選一次就新增一行記錄。
設定一個定時任務,每分鐘檢查一次,到了時間就發送,發完就刪除這條記錄

洪涛

把要執行的任務名稱及執行時刻塞進redis有序集合中,然後定時檢查redis有序集合的分值,如果在範圍內就取出執行任務

曾经蜡笔没有小新

用戶操作的時候一定會存一個操作時間到表裡,守護程序一直去查詢到兩個小時的時候發短信

给我你的怀抱

這就是定時器和訊息佇列的需求。 。 。

过去多啦不再A梦

linux 使用crontab 而window這種介面系統有其自訂任務,使用定時任務curl指定php文件,又或使用php執行php檔案。這樣的話透過每分鐘執行定時存取(類似輪詢),在存取php檔案時候讀取儲存資料表的資料(條件兩個小時資料),你需要將資料丟進佇列內(避免資料量過大時候,大量發送訊息導致伺服器資源使用過大),最後將佇列抽取定量資料,進行傳送資料

仅有的幸福

用crontab,跑資料庫的任務佇列

滿天的星座

你可以利用一個php的非同步框架,如workerman或swoole 建立一個計時器,就可以在你需要的時候執行任務! ! !

Ty80

把要觸發的時間和事件保存下來,腳本每分鐘去跑數據,到點了就執行,最簡單了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板