84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
需求是,在用户进行了一个操作之后,倒计时俩小时,然后到时间点执行另一个操作
但是现在没有办法来进行这两个小时的计时。
请问有没有什么好的思路
ringa_lee
我的思路是,通过队列延迟分发一个任务,就是2小时后触发,然后在任务中发送一个短信即可。以下是文档链接:
队列延迟分发
短信通知
建一张表,存用户手机号,短信内容,应发送的时间。用户点击一次就新增一行记录。设置一个定时任务,每分钟检查一次,到了时间就发送,发完就删除这条记录
把要执行的任务名及执行时刻塞进redis有序集合中,然后定时检查redis有序集合的分值,如果在范围内就取出执行任务
用户操作的时候肯定会存一个操作时间到表里,守护进程一直去查询到两个小时的时候发短信
这就是定时器和消息队列的需求。。。
linux 使用crontab 而window這種界面系統有其定制任務,使用定時任務curl指定php文件,又或者使用php執行php文件。這樣的話通過每分鐘執行定時訪問(類似輪詢),在訪問php文件時候讀取存儲數據表的數據(條件兩個小時數據),你需要將數據丟進隊列內(避免數據量過大時候,大量發送信息導致服務器資源使用過大),最後將隊列裡抽取定量數據,進行發送數據
用crontab,跑数据库的任务队列
你可以利用一个php的异步框架,如workerman或者swoole 建立一个定时器,就可以在你需要的时候执行任务!!!
把要触发的时间和事件保存下来,脚本每分钟去跑数据,到点了就执行,最简单了
我的思路是,通过队列延迟分发一个任务,就是2小时后触发,然后在任务中发送一个短信即可。
以下是文档链接:
队列延迟分发
短信通知
建一张表,存用户手机号,短信内容,应发送的时间。
用户点击一次就新增一行记录。
设置一个定时任务,每分钟检查一次,到了时间就发送,发完就删除这条记录
把要执行的任务名及执行时刻塞进redis有序集合中,然后定时检查redis有序集合的分值,如果在范围内就取出执行任务
用户操作的时候肯定会存一个操作时间到表里,守护进程一直去查询到两个小时的时候发短信
这就是定时器和消息队列的需求。。。
linux 使用crontab 而window這種界面系統有其定制任務,使用定時任務curl指定php文件,又或者使用php執行php文件。這樣的話通過每分鐘執行定時訪問(類似輪詢),在訪問php文件時候讀取存儲數據表的數據(條件兩個小時數據),你需要將數據丟進隊列內(避免數據量過大時候,大量發送信息導致服務器資源使用過大),最後將隊列裡抽取定量數據,進行發送數據
用crontab,跑数据库的任务队列
你可以利用一个php的异步框架,如workerman或者swoole 建立一个定时器,就可以在你需要的时候执行任务!!!
把要触发的时间和事件保存下来,脚本每分钟去跑数据,到点了就执行,最简单了