关于“php_rabittmq入门”的问题,小编就整理了【3】个相关介绍“php_rabittmq入门”的解答:
rabbitmq时间怎么设置?1、通过队列属性设置,队列中所有消息都有相同的过期时间。
2、通过对消息进行单独设置,每条消息TTL可以不同。
rabbitmq持久化原理?rabbitmq持久化分为三个部分: 交换器的持久化、队列的持久化和消息的持久化。
队列持久化是定义在队列的durable参数来实现的,durable为true时,队列才会持久化。
消息持久化可以通过消息属性deliveryMode来设置是否持久化,在发送消息时通过basicPublish的参数传入。
同队列一样,交换器也需要在定义时设置持久化标识,否则在Broker重启后将丢失。
rabbitmq延迟队列原理?延时队列最重要的特性体现在它的延时属性上,队列内部是有序的,延时队列中的消息是希望在到了指定时间之前或之后
1、用户下了订单,十分钟之内未进行支付则自动取消订单
2、新创建的店铺,如果在十天之内都没有上架商品,则发送消息进行提醒
3、用户注册账号成功后,如果半个月没有登录,则发送消息进行提醒
4、用户发起退款,如果三天之内都没有得到处理,则发送消息通知相关运营人员进行处理
5、预定会议后,需要在预定的时间点前十分钟通知各个与会人员参与
上面的这些场景都有一个特点,需要在某个时间发生之前或者之后完成某一项任务,例如发生订单生成时间,在十分钟之后需要检查该订单的支付状态,如果订单未进行支付,需要将该订单关闭,理论上我们通过定时任务,一直轮询数据,每秒都查一次,取出所有十分钟之后未支付的订单,然后关闭就好了,如果数据量比较少,使用定时任务确实是一个不错的选择,但是,如果数据量比较大怎么办呢,轮询大量的数据对数据库的压力是很大的,并且实时性也不好(轮询大量数据需要时间),这样就无法满足业务要求,并且性能低下.这种情况下我们就可以使用 RabbitMQ 的延时队列了
到此,以上就是小编对于“php_rabittmq入门”的问题就介绍到这了,希望介绍关于“php_rabittmq入门”的【3】点解答对大家有用。