当前位置: 首页 > news >正文

泽成杭州seo网站推广排名网站备案和域名解析

泽成杭州seo网站推广排名,网站备案和域名解析,门户网站如何做谷歌seo,住建局查询系统一、前言 延迟队列的使用场景#xff1a;1.未按时支付的订单#xff0c;30分钟过期之后取消订单#xff1b;2.给活跃度比较低的用户间隔N天之后推送消息#xff0c;提高活跃度#xff1b;3.过1分钟给新注册会员的用户#xff0c;发送注册邮件等。 实现延迟队列的方式有…一、前言 延迟队列的使用场景1.未按时支付的订单30分钟过期之后取消订单2.给活跃度比较低的用户间隔N天之后推送消息提高活跃度3.过1分钟给新注册会员的用户发送注册邮件等。 实现延迟队列的方式有两种 通过消息过期后进入死信交换器再由交换器转发到延迟消费队列实现延迟功能使用rabbitmq-delayed-message-exchange插件实现延迟功能 注意 延迟插件rabbitmq-delayed-message-exchange是在RabbitMQ 3.5.7及以上的版本才支持的依赖Erlang/OPT 18.0及以上运行环境。 由于使用死信交换器相对曲折本文重点介绍第二种方式使用rabbitmq-delayed-message-exchange插件完成延迟队列的功能。 二、安装延迟插件 1.1 下载插件 打开官网下载http://www.rabbitmq.com/community-plugins.html 选择相应的对应的版本“3.7.x”点击下载。 注意 下载的是.zip的安装包下载完之后需要手动解压。 1.2 安装插件 拷贝插件到Docker docker cp D:\rabbitmq_delayed_message_exchange-20171201-3.7.x.ez rabbit:/plugins RabbitMQ在Docker的安装请参照本系列的上一篇文章http://www.apigo.cn/2018/09/11/springboot13/ 1.3 启动插件 进入docker内部 docker exec -it rabbit /bin/bash 开启插件 rabbitmq-plugins enable rabbitmq_delayed_message_exchange 查询安装的所有插件 rabbitmq-plugins list 安装正常效果如下图 重启RabbitMQ使插件生效 docker restart rabbit 三、代码实现 3.1 配置队列 import com.example.rabbitmq.mq.DirectConfig; import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.HashMap; import java.util.Map;Configuration public class DelayedConfig {final static String QUEUE_NAME delayed.goods.order;final static String EXCHANGE_NAME delayedec;Beanpublic Queue queue() {return new Queue(DelayedConfig.QUEUE_NAME);}// 配置默认的交换机BeanCustomExchange customExchange() {MapString, Object args new HashMap();args.put(x-delayed-type, direct);//参数二为类型必须是x-delayed-messagereturn new CustomExchange(DelayedConfig.EXCHANGE_NAME, x-delayed-message, true, false, args);}// 绑定队列到交换器BeanBinding binding(Queue queue, CustomExchange exchange) {return BindingBuilder.bind(queue).to(exchange).with(DelayedConfig.QUEUE_NAME).noargs();} }3.2 发送消息 import org.springframework.amqp.AmqpException; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessagePostProcessor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date;Component public class DelayedSender {Autowiredprivate AmqpTemplate rabbitTemplate;public void send(String msg) {SimpleDateFormat sf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);System.out.println(发送时间 sf.format(new Date()));rabbitTemplate.convertAndSend(DelayedConfig.EXCHANGE_NAME, DelayedConfig.QUEUE_NAME, msg, new MessagePostProcessor() {Overridepublic Message postProcessMessage(Message message) throws AmqpException {message.getMessageProperties().setHeader(x-delay, 3000);return message;}});} }3.3 消费消息 import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date;Component RabbitListener(queues delayed.goods.order) public class DelayedReceiver {RabbitHandlerpublic void process(String msg) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);System.out.println(接收时间: sdf.format(new Date()));System.out.println(消息内容 msg);} }3.4 测试队列 import com.example.rabbitmq.RabbitmqApplication; import com.example.rabbitmq.mq.delayed.DelayedSender; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.text.SimpleDateFormat; import java.util.Date;RunWith(SpringRunner.class) SpringBootTest public class DelayedTest {Autowiredprivate DelayedSender sender;Testpublic void Test() throws InterruptedException {SimpleDateFormat sf new SimpleDateFormat(yyyy-MM-dd);sender.send(Hi Admin.);Thread.sleep(5 * 1000); //等待接收程序执行之后再退出测试} }执行结果如下 发送时间2018-09-11 20:47:51 接收时间:2018-09-11 20:47:54 消息内容Hi Admin.完整代码访问我的GitHubhttps://github.com/vipstone/springboot-example/tree/master/springboot-rabbitmq 四、总结 到此为止我们已经使用“rabbitmq-delayed-message-exchange”插件实现了延迟功能但是需要注意的一点是如果使用命令“rabbitmq-plugins disable rabbitmq_delayed_message_exchange”禁用了延迟插件那么所有未发送的延迟消息都将丢失。
http://wiki.neutronadmin.com/news/81329/

相关文章:

  • 建设网站的调研报告东莞做网站网站
  • 免费自助站制作在线深圳最新消息
  • 网站设计公司佛山深圳app开发公司有哪些
  • 做网站 做应用海口网站公司
  • 空包网站做红章底单做网站一定要实名认证吗
  • 界面简洁的网站vr全景网站开发
  • 成都市建网站公司滁州新橙科技网站建设
  • 网站设计 色彩wordpress进入有点卡
  • 江门做网站那家公司好音乐网站怎么做外链
  • 阿里云建站视频全部网站
  • 做qq头像的网站wordpress 本地头像
  • 专业的wap网站开发个人兼职网站制作
  • 9377将军网站优化原理
  • wordpress站群是什么那里有网站建设
  • 福州网站制作公司wordpress 文章全部显示
  • 做外贸需要关注国外哪些网站专业的网站服务公司
  • 创意视觉网站crm客户管理系统简历
  • 商务网站建设与维护课程做网站运维
  • 做网站模板赚钱吗宜春seo
  • 外吐司做的阿里巴巴的网站淘宝搜索框去什么网站做
  • php网站实例网站优化排名公司
  • 网站建设junke100搞笑视频网站建设策划书
  • 北京高端网站制作怎样做医疗保健网站
  • dw建设网站的代码模板下载浙江乐清新闻今天
  • 邯郸做企业网站改版做建材的网站好名字
  • 怎么做公司网站的手机客户端太原做网站需要多少钱
  • 做一个平面网站的成本wordpress做手机版
  • 自己做网站写文章变装app制作教程
  • 建筑工程是干嘛的高明搜索seo
  • 橱柜手机网站模板微信小程序官网