搜尋

首頁  >  問答  >  主體

mysql - PHP定時任務,在某個操作執行後,計時兩個小時然後給用戶發短信。

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

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

請問有沒有什麼好的思路

ringa_leeringa_lee2798 天前760

全部回覆(9)我來回復

  • 巴扎黑

    巴扎黑2017-05-16 13:06:54

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

    • 隊列延遲分發

    • 簡訊通知

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:06:54

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 13:06:54

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

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:06:54

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

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:06:54

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

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:06:54

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

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:06:54

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

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:06:54

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 13:06:54

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

    回覆
    0
  • 取消回覆