一个任务代办的定时提醒应该需要掌握哪些知识点?
需求如下:
1.假设创建待办的时间是10点,我设置到12点提醒我,到12点的时候,前端会调用notification提醒我(前端部分不讨论)
我学习到的知识点:
1.WebSocket,SSE
2.laravel广播系统、事件系统、消息通知、队列、任务调度
3.laravel-websockets,laravel Echo
疑惑点:现在有点晕,不知道该怎么下手去做这个任务,是不是这样的流程:
1、前端传入数据,后端保存,如果发现提醒这个字段有值,那么创建一个事件(还是任务?),我百度了job和event,event是说当…就…,所以当这个字段有值的时候,就创建一个事件。
2.接着这个事件就延迟2小时执行广播系统(laravel-websockets,laravel Echo)推送给前端。
3.如果我一天创建10个提醒,就把事件放到队列是吗?如果是这样,假设我第一个创建2小时提醒我,第二个创建1小时提醒我,那应该第二个先出队列
4.现在就是这个逻辑没搞清楚,有点晕。
请高人指点,感谢,如果有代码示例,那最好了
本作品采用《CC 协议》,转载必须注明作者和本文链接
可以监听redis键过期来提醒。
使用队列的延迟任务。
想复杂了 就是crontab
后端保存到数据库,任务调度里每分钟执行一次,当前时间段有任务的话启动worker推送并标记
搞复杂了,延迟队列就解决了
刚好我也有类似的需求和写过. 博客:用户自定义定时任务的php实现