php对列任务,php队列任务的实现的问题请教高手!

本文探讨了一种广播功能的实现方案,涉及广播的开始时间、结束时间、间隔时间和优先级。建议使用数据库(如MySQL或Redis)存储广播信息,并通过定时任务执行。对于优先级,可以通过设置标志位进行管理。当广播信息更新时,可以通过查询和更新数据库记录来替换队列中的旧广播。讨论中提到了PHP常驻后台处理和使用HTTPSQS作为队列的可能性。
摘要由CSDN通过智能技术生成

要做一个广播功能,广播有开始时间,结束时间,间隔时间和优先级。如下表:

想实现这样的功能:新建一条广播后,判断开始时间,将广播加入队列,用一个定时器去执行这个队列里的各个广播。

1 如何放数据到队列中去?

2 如何取队列中数据?

3 如何根据优先级,比如1、2、3,来确定广播的播放顺序?

4 如何异步调用只执行一个do while 就能执行所有的广播?

5 修改广播后如何能替换掉队列里的那已经存在的那一条广播?

各位大仙帮帮忙吧!

回复讨论(解决方案)

你说的需求,没看出有要用队列的必要,而且画蛇添足,有优先级用什么队列呀,可以用php常驻后台来处理。用mysql就行。

如果要用队列,可以用HTTPSQS

你说的需求,没看出有要用队列的必要,而且画蛇添足,有优先级用什么队列呀,可以用php常驻后台来处理。用mysql就行。

能不能再具体说一说啊?什么是PHP常驻后台啊?

redis或数据库实现好了...

redis或数据库实现好了... 数据库如何实现呢?

直接写mysql 或者redis啊,然后sql查询就可以了。

队列是啥,先进先出

不要沉贴子啊!!!

队列很难吗...不要想得太复杂哦...

不注重性能的话用mysql做

1.直接把标志位为0的全部数据查出来,php里操作,用了哪个就把表中标志位设置为1

2.直接用 where 标志位 = 0 limit 1 取出数据 把那条数据的标志位设置成1

redis做就更简单了,直接支持队列格式,详看redis的操作方式...

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值