PHP如何實現定時(時間是乙個變數 訪問的使用者不同,時間也會不同)(觸發)任務?

時間 2021-06-07 19:45:05

1樓:Benjamin

可以用redis的key過期機制實現定時任務,效果超級好的,比如我需要三分五十秒觸發,那我就設定這個redis的key在三分五十秒過期,當key過期時候,php是可以捕獲的。

2樓:

做過類似的,我的做法是這樣的,如果使用者訪問過A方法後,就設定乙個定時任務,在redis佇列裡面插入一條定時記錄,裡面記錄了執行的時間,然後Linux中設定crontab,去呼叫乙個介面,5分鐘或者是更小間隔的時間執行一次,這個介面的作用呢,是判斷佇列中當前時間是否有未執行的任務,如果有就呼叫B方法並且插入到資料庫這樣子,如果執行完成就在佇列中移出該任務記錄!這種方法應該是工作量相對來說最少的了,如果是用swoole也是可以做到的。

3樓:

包括並不限於以下幾種方法,推薦程度降序排列用訊息佇列(推薦)。

寫守護程式。可以用swoole、workerman等幫助,swoole可以用task,workerman可以用Timer::add。

做個定時任務,如每分鐘看看有沒有新的任務需要執行。

用MySQL的定時器。

4樓:那把殺豬刀

基本兩個思路,一種是常規手段,一種是常駐記憶體應用

先說第一種常規手段,由於php常規情況下是短生命週期的應用,定時處理得借助第三方,大致的思路就是把需要定時的任務插入資料表,然後另外起乙個後端程式定時掃任務表,到達時間就執行

第二種方式就是起常駐記憶體應用,像swoole或者純php的workerman,這類工具都有定時器的功能,往定時器裡寫個callback方法就行

定時發微博的工具是如何用PHP實現的?比如定時V

李省偉 php指令碼用來實現發微博。linux下有乙個crontab,可以定時執行這個php的指令碼。這樣連起來就是定時傳送微博 補充 我認為 胡榮良的方法不是乙個好的方法,第一,他裡邊也說了,需要占用php的程序 第二,需要手動執行指令碼。問題的本身說的是乙個服務端的東西,我想更多的是提問者的需求...

酒店行業為什麼沒有乙個固定時間工作,如何才能讓員工原意為你幹活?

Mona 工作時間不固定由行業性質決定,服務行業本身賣得就是產品與服務,相當於全天營業本身就是服務的一部分。如果客人好不容易凌晨到了酒店,卻關著門,那客人的錢,酒店一分也賺不到。如果住客在凌晨感覺房間太冷,打給前台,前台解決了,客人可能會寫好評 幫宣傳。沒有解決,還可能會賠錢損形象,少賺很多潛在客人...

假如有台電腦在乙個固定時間生成乙個隨機數,我穿越時間回到過去,再發生時這個數還是一樣的嗎?為什麼?

如果是真隨機 那麼你時間穿梭後,你的記憶會重置嗎?如果你的記憶不重置。那麼計算機附近的磁場就已經發生了變化。雖然很微弱,但是按照真隨機的以計算機附近的各種噪音做隨機數種子的演算法。這個隨機數可能不同了。不過我不是研究硬體的,我不知道敏感度夠不夠得上。只能說,有概率不同吧 李悅 明明是個物理問題,卻用...