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

北京个人制作网站有哪些内容微信小程序定制公司

北京个人制作网站有哪些内容,微信小程序定制公司,宁德市城乡住房建设厅网站,怎么给wordpress切图RabbitMQ的DLX 1、RabbitMQ死信队列2、代码示例2.1、队列过期2.1.1、配置类RabbitConfig#xff08;关键代码#xff09;2.1.2、业务类MessageService2.1.3、配置文件application.yml2.1.4、启动类2.1.5、配置文件2.1.6、测试 2.2、消息过期2.2.1、配置类RabbitConfig2.2.2、… RabbitMQ的DLX 1、RabbitMQ死信队列2、代码示例2.1、队列过期2.1.1、配置类RabbitConfig关键代码2.1.2、业务类MessageService2.1.3、配置文件application.yml2.1.4、启动类2.1.5、配置文件2.1.6、测试 2.2、消息过期2.2.1、配置类RabbitConfig2.2.2、业务类MessageService关键代码2.2.3、配置文件application.yml2.2.4、启动类同上2.2.5、配置文件同上2.2.6、测试 2.3、队列达到最大长度先入队的消息会被发送到DLX2.3.1、配置类RabbitConfig关键代码2.3.2、业务类MessageService关键代码2.3.3、配置文件application.yml2.3.4、启动类同上2.3.5、配置文件pom.xml同上2.3.6、测试 2.4、消费者拒绝消息不进行重新投递2.4.1、生产者2.4.1.1、生产者application.yml2.4.1.2、生产者发送消息2.4.1.3、生产者配置类 2.4.2、消费者2.4.2.1、消费者application.yml 启动手动确认关键配置 2.4.2.2、消费者接收消息关键代码 2.4.3、测试 1、RabbitMQ死信队列 RabbitMQ死信队列也有叫 死信交换机、死信邮箱等说法。 DLX: Dead-Letter-Exchange 死信交换器死信邮箱。 1-2、生产者发送一个消息到正常交换机 2-4、正常交换机接收到消息发送到正常队列 4、正常队列设置了队列过期时间超时消息会自动删除 4-6、原本过期自动删除的消息发送到了死信交换机 6-8、死信交换机将消息发送到了死信队列 如上情况下一个消息会进入DLXDead Letter Exchange死信交换机。 2、代码示例 2.1、队列过期 2.1.1、配置类RabbitConfig关键代码 package com.power.config;import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.HashMap; import java.util.Map;Configuration public class RabbitConfig {Value(${my.exchangeNormalName})private String exchangeNormalName;Value(${my.queueNormalName})private String queueNormalName;Value(${my.exchangeDlxName})private String exchangeDlxName;Value(${my.queueDlxName})private String queueDlxName;/*** 正常交换机* return*/Beanpublic DirectExchange normalExchange(){return ExchangeBuilder.directExchange(exchangeNormalName).build();}/*** 正常队列* return*/Beanpublic Queue normalQueue(){MapString, Object arguments new HashMap();arguments.put(x-message-ttl,20000);//设置队列的过期时间为20秒//重点设置这两个参数arguments.put(x-dead-letter-exchange,exchangeDlxName); //设置队列的死信交换机arguments.put(x-dead-letter-routing-key,error);//设置死信路由key要跟死信交换机和死信队列绑定的路由key一致return QueueBuilder.durable(queueNormalName).withArguments(arguments) //设置队列的过期时间.build();}/*** 正常交换机和正常队列绑定* param normalExchange* param normalQueue* return*/Beanpublic Binding bingNormal(DirectExchange normalExchange,Queue normalQueue){return BindingBuilder.bind(normalQueue).to(normalExchange).with(order);}/*** 死信交换机* return*/Beanpublic DirectExchange dlxExchange(){return ExchangeBuilder.directExchange(exchangeDlxName).build();}/*** 死信队列* return*/Beanpublic Queue dlxQueue(){return QueueBuilder.durable(queueDlxName).build();}/*** 死信交换机和死信队列绑定* param dlxExchange* param dlxQueue* return*/Beanpublic Binding bindDlx(DirectExchange dlxExchange,Queue dlxQueue){return BindingBuilder.bind(dlxQueue).to(dlxExchange).with(error);} }2.1.2、业务类MessageService package com.power.service;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.Date;Service Slf4j public class MessageService {Resourceprivate RabbitTemplate rabbitTemplate;Beanpublic void sendMsg(){Message message MessageBuilder.withBody(hello world.getBytes()).build();rabbitTemplate.convertAndSend(exchange.normal.a,order,message);log.info(消息发送完毕发送时间是new Date());} }2.1.3、配置文件application.yml server:port: 8080 spring:application:name: dlx-test01rabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powermy:exchangeNormalName: exchange.normal.a #正常交换机queueNormalName: queue.normal.a #正常队列没有消费组设置过期时间exchangeDlxName: exchange.dlx.a #死信交换机queueDlxName: queue.dlx.a #死信队列2.1.4、启动类 package com.power;import com.power.service.MessageService; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.Resource;SpringBootApplication public class Application implements ApplicationRunner {Resourceprivate MessageService messageService;public static void main(String[] args) {SpringApplication.run(Application.class);}Overridepublic void run(ApplicationArguments args) throws Exception {messageService.sendMsg();} }2.1.5、配置文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.power/groupIdartifactIdrabbit_06_dlx01/artifactIdversion1.0-SNAPSHOT/versionnamerabbit_06_dlx01/namepropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.13/versionrelativePath//parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project2.1.6、测试 启动程序发送消息 消息会先被发送到正常队列queue.normal.a中超时未被消费 则消息会被发送到死信队列queue.dlx.a 中 2.2、消息过期 2.2.1、配置类RabbitConfig package com.power.config;import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.HashMap; import java.util.Map;Configuration public class RabbitConfig {Value(${my.exchangeNormalName})private String exchangeNormalName;Value(${my.queueNormalName})private String queueNormalName;Value(${my.exchangeDlxName})private String exchangeDlxName;Value(${my.queueDlxName})private String queueDlxName;/*** 正常交换机* return*/Beanpublic DirectExchange normalExchange(){return ExchangeBuilder.directExchange(exchangeNormalName).build();}/*** 正常队列* return*/Beanpublic Queue normalQueue(){MapString, Object arguments new HashMap();//重点设置这两个参数//设置队列的死信交换机arguments.put(x-dead-letter-exchange,exchangeDlxName);//设置死信路由key要跟死信交换机和死信队列绑定的路由key一致arguments.put(x-dead-letter-routing-key,error);return QueueBuilder.durable(queueNormalName).withArguments(arguments) //设置队列的过期时间.build();}/*** 正常交换机和正常队列绑定* param normalExchange* param normalQueue* return*/Beanpublic Binding bingNormal(DirectExchange normalExchange,Queue normalQueue){return BindingBuilder.bind(normalQueue).to(normalExchange).with(order);}/*** 死信交换机* return*/Beanpublic DirectExchange dlxExchange(){return ExchangeBuilder.directExchange(exchangeDlxName).build();}/*** 死信队列* return*/Beanpublic Queue dlxQueue(){return QueueBuilder.durable(queueDlxName).build();}/*** 死信交换机和死信队列绑定* param dlxExchange* param dlxQueue* return*/Beanpublic Binding bindDlx(DirectExchange dlxExchange,Queue dlxQueue){return BindingBuilder.bind(dlxQueue).to(dlxExchange).with(error);} }2.2.2、业务类MessageService关键代码 package com.power.service;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.Date;Service Slf4j public class MessageService {Resourceprivate RabbitTemplate rabbitTemplate;Beanpublic void sendMsg(){try {MessageProperties messageProperties new MessageProperties();//设置单条消息的过期时间单位为毫秒数据类型为字符串messageProperties.setExpiration(20000);Message message MessageBuilder.withBody(hello world.getBytes()).andProperties(messageProperties).build();rabbitTemplate.convertAndSend(exchange.normal.02,order,message);}catch (Exception e){e.printStackTrace();log.info(消息发送失败new Date());}log.info(消息发送完毕发送时间是new Date());} }2.2.3、配置文件application.yml server:port: 8080 spring:application:name: dlx-test01rabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powermy:exchangeNormalName: exchange.normal.02 #正常交换机queueNormalName: queue.normal.02 #正常队列没有消费组设置过期时间exchangeDlxName: exchange.dlx.02 #死信交换机queueDlxName: queue.dlx.02 #死信队列2.2.4、启动类同上 2.2.5、配置文件同上 2.2.6、测试 启动程序发送消息 登录rabbitmq后台 消息先进入正常队列queue.normal.02中超时未消费 消息超过过期时间则进入queue.dlx.02死信队列 2.3、队列达到最大长度先入队的消息会被发送到DLX 2.3.1、配置类RabbitConfig关键代码 package com.power.config;import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.HashMap; import java.util.Map;Configuration public class RabbitConfig {Value(${my.exchangeNormalName})private String exchangeNormalName;Value(${my.queueNormalName})private String queueNormalName;Value(${my.exchangeDlxName})private String exchangeDlxName;Value(${my.queueDlxName})private String queueDlxName;/*** 正常交换机* return*/Beanpublic DirectExchange normalExchange(){return ExchangeBuilder.directExchange(exchangeNormalName).build();}/*** 正常队列* return*/Beanpublic Queue normalQueue(){MapString, Object arguments new HashMap();//设置队列的最大长度arguments.put(x-max-length,5);//重点设置这两个参数//设置队列的死信交换机arguments.put(x-dead-letter-exchange,exchangeDlxName);//设置死信路由key要跟死信交换机和死信队列绑定的路由key一致arguments.put(x-dead-letter-routing-key,error);return QueueBuilder.durable(queueNormalName).withArguments(arguments) //设置队列的参数.build();}/*** 正常交换机和正常队列绑定* param normalExchange* param normalQueue* return*/Beanpublic Binding bingNormal(DirectExchange normalExchange,Queue normalQueue){return BindingBuilder.bind(normalQueue).to(normalExchange).with(order);}/*** 死信交换机* return*/Beanpublic DirectExchange dlxExchange(){return ExchangeBuilder.directExchange(exchangeDlxName).build();}/*** 死信队列* return*/Beanpublic Queue dlxQueue(){return QueueBuilder.durable(queueDlxName).build();}/*** 死信交换机和死信队列绑定* param dlxExchange* param dlxQueue* return*/Beanpublic Binding bindDlx(DirectExchange dlxExchange,Queue dlxQueue){return BindingBuilder.bind(dlxQueue).to(dlxExchange).with(error);} }2.3.2、业务类MessageService关键代码 package com.power.service;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.Date;Service Slf4j public class MessageService {Resourceprivate RabbitTemplate rabbitTemplate;Beanpublic void sendMsg(){for (int i 1; i 8; i) {String msg hello world i;Message message MessageBuilder.withBody(msg.getBytes()).build();rabbitTemplate.convertAndSend(exchange.normal.03,order,message);log.info(消息发送完毕发送时间是new Date());}} }2.3.3、配置文件application.yml server:port: 8080 spring:application:name: dlx-test01rabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powermy:exchangeNormalName: exchange.normal.03 #正常交换机queueNormalName: queue.normal.03 #正常队列没有消费组设置过期时间exchangeDlxName: exchange.dlx.03 #死信交换机queueDlxName: queue.dlx.03 #死信队列2.3.4、启动类同上 2.3.5、配置文件pom.xml同上 2.3.6、测试 启动项目发送消息 登录rabbitmq后台 两条消息进入死信队列 查看消息发现是前两条消息进入了死信队列 2.4、消费者拒绝消息不进行重新投递 消费者从正常的队列接收消息但是消费者对消息不进行确认并且不对消息进行重新投递此时消息就进入死信队列。 2.4.1、生产者 2.4.1.1、生产者application.yml server:port: 8080 spring:application:name: dlx-test04rabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powermy:exchangeNormalName: exchange.normal.04 #正常交换机queueNormalName: queue.normal.04 #正常队列没有消费组设置过期时间exchangeDlxName: exchange.dlx.04 #死信交换机queueDlxName: queue.dlx.04 #死信队列2.4.1.2、生产者发送消息 package com.power.service;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.Date;Service Slf4j public class MessageService {Resourceprivate RabbitTemplate rabbitTemplate;Beanpublic void sendMsg(){String msg hello world;Message message MessageBuilder.withBody(msg.getBytes()).build();rabbitTemplate.convertAndSend(exchange.normal.04,order,message);log.info(消息发送完毕发送时间是new Date());} }2.4.1.3、生产者配置类 package com.power.config;import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.HashMap; import java.util.Map;Configuration public class RabbitConfig {Value(${my.exchangeNormalName})private String exchangeNormalName;Value(${my.queueNormalName})private String queueNormalName;Value(${my.exchangeDlxName})private String exchangeDlxName;Value(${my.queueDlxName})private String queueDlxName;/*** 正常交换机* return*/Beanpublic DirectExchange normalExchange(){return ExchangeBuilder.directExchange(exchangeNormalName).build();}/*** 正常队列* return*/Beanpublic Queue normalQueue(){MapString, Object arguments new HashMap();//重点设置这两个参数//设置队列的死信交换机arguments.put(x-dead-letter-exchange,exchangeDlxName);//设置死信路由key要跟死信交换机和死信队列绑定的路由key一致arguments.put(x-dead-letter-routing-key,error);return QueueBuilder.durable(queueNormalName).withArguments(arguments) //设置队列的参数.build();}/*** 正常交换机和正常队列绑定* param normalExchange* param normalQueue* return*/Beanpublic Binding bingNormal(DirectExchange normalExchange,Queue normalQueue){return BindingBuilder.bind(normalQueue).to(normalExchange).with(order);}/*** 死信交换机* return*/Beanpublic DirectExchange dlxExchange(){return ExchangeBuilder.directExchange(exchangeDlxName).build();}/*** 死信队列* return*/Beanpublic Queue dlxQueue(){return QueueBuilder.durable(queueDlxName).build();}/*** 死信交换机和死信队列绑定* param dlxExchange* param dlxQueue* return*/Beanpublic Binding bindDlx(DirectExchange dlxExchange,Queue dlxQueue){return BindingBuilder.bind(dlxQueue).to(dlxExchange).with(error);} }2.4.2、消费者 2.4.2.1、消费者application.yml 启动手动确认 server:port: 9090 spring:application:name: dlx04-receiverrabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powerlistener:simple:acknowledge-mode: manual关键配置 2.4.2.2、消费者接收消息 package com.power.service;import com.rabbitmq.client.Channel; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;import java.io.IOException; import java.util.Date;Component Slf4j public class MessageReceive {RabbitListener(queues{queue.normal.04})public void receiveMsg(Message message, Channel channel){//获取消息属性MessageProperties messageProperties message.getMessageProperties();//获取消息的唯一标识类似学号和身份证号long deliveryTag messageProperties.getDeliveryTag();try{byte[] body message.getBody();String msg new String(body);log.info(监听到的消息是msg,接收的时间是new Date());//TODO 业务逻辑处理int a1/0;//消费者的手动确认false只确认当前消息true批量确认channel.basicAck(deliveryTag,false);}catch (Exception e){log.error(接收者出现问题{},e.getMessage());try {//消费者的手动不确认参数3是重新入队//不会进入死信队列 // channel.basicNack(deliveryTag,false,true);//消费者的手动不确认参数3false 不重新入队不重新投递就会变成死信channel.basicNack(deliveryTag,false,false);}catch (IOException ex){throw new RuntimeException(ex);}}}} 关键代码 2.4.3、测试 启动生产者发送消息 启动消费者 因业务代码出错程序处理异常消息进入死信队列
文章转载自:
http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn
http://www.morning.xpgwz.cn.gov.cn.xpgwz.cn
http://www.morning.taojava.cn.gov.cn.taojava.cn
http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn
http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn
http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn
http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn
http://www.morning.bphqd.cn.gov.cn.bphqd.cn
http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn
http://www.morning.brld.cn.gov.cn.brld.cn
http://www.morning.kzrg.cn.gov.cn.kzrg.cn
http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.bqdgr.cn.gov.cn.bqdgr.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.qflcb.cn.gov.cn.qflcb.cn
http://www.morning.thpns.cn.gov.cn.thpns.cn
http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn
http://www.morning.jyfrz.cn.gov.cn.jyfrz.cn
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn
http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn
http://www.morning.yhpl.cn.gov.cn.yhpl.cn
http://www.morning.ntgjm.cn.gov.cn.ntgjm.cn
http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn
http://www.morning.drndl.cn.gov.cn.drndl.cn
http://www.morning.xesrd.com.gov.cn.xesrd.com
http://www.morning.sfyqs.cn.gov.cn.sfyqs.cn
http://www.morning.ryzgp.cn.gov.cn.ryzgp.cn
http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn
http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn
http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn
http://www.morning.lsxabc.com.gov.cn.lsxabc.com
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.srmpc.cn.gov.cn.srmpc.cn
http://www.morning.zhghd.cn.gov.cn.zhghd.cn
http://www.morning.kcsx.cn.gov.cn.kcsx.cn
http://www.morning.qpntn.cn.gov.cn.qpntn.cn
http://www.morning.flxqm.cn.gov.cn.flxqm.cn
http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn
http://www.morning.nwwzc.cn.gov.cn.nwwzc.cn
http://www.morning.nfyc.cn.gov.cn.nfyc.cn
http://www.morning.hnrls.cn.gov.cn.hnrls.cn
http://www.morning.xqcst.cn.gov.cn.xqcst.cn
http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn
http://www.morning.qgjxy.cn.gov.cn.qgjxy.cn
http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn
http://www.morning.bygyd.cn.gov.cn.bygyd.cn
http://www.morning.hxbps.cn.gov.cn.hxbps.cn
http://www.morning.fykrm.cn.gov.cn.fykrm.cn
http://www.morning.zwgbz.cn.gov.cn.zwgbz.cn
http://www.morning.ghslr.cn.gov.cn.ghslr.cn
http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn
http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn
http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn
http://www.morning.xlmgq.cn.gov.cn.xlmgq.cn
http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn
http://www.morning.jrdbq.cn.gov.cn.jrdbq.cn
http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn
http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn
http://www.morning.lfdmf.cn.gov.cn.lfdmf.cn
http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn
http://www.morning.sqskm.cn.gov.cn.sqskm.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.txlnd.cn.gov.cn.txlnd.cn
http://www.morning.snmth.cn.gov.cn.snmth.cn
http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn
http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn
http://www.morning.tnqk.cn.gov.cn.tnqk.cn
http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn
http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn
http://www.morning.srkqs.cn.gov.cn.srkqs.cn
http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn
http://www.morning.gqjwz.cn.gov.cn.gqjwz.cn
http://www.morning.bsplf.cn.gov.cn.bsplf.cn
http://www.morning.qlpq.cn.gov.cn.qlpq.cn
http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn
http://www.tj-hxxt.cn/news/267281.html

相关文章:

  • 吴江建设局网站沈阳男科医院在线咨询免费
  • 如何设网站主页建湖网站建设公司
  • 想建立什么网站如何让百度能查到自己
  • 佛山网站制作咨询沈阳seo公司
  • 17网站一起做网店增城大连公司招聘
  • 下列关于网站开发中网站上传广东网络公司网站建设
  • vps 同时翻墙和做网站wordpress评论空白
  • 北京网站建设公司 蓝纤科技wordpress如何接入visa支付宝
  • 网站开发前景咋样群晖wordpress修改80端口
  • 重庆网站优化建设网页制作超链接怎么做
  • 商城建设网站公司网站开发研究前景
  • 做网站需要多少钱 爱问知识人wordpress修改样式表
  • php asp网站开发教程常州网站建设优质商家
  • 天堂资源地址在线下载班级优化大师免费下载
  • 怎么创建一个公司网站seo对网店的作用有哪些
  • 做预算查市场价格的网站本地广东中山网站建设
  • 创业初期要建立公司的网站吗手机网站内容规划
  • 随州网站建设哪家便宜成都网站制作-中国互联
  • 手机网站meta做58同城网站花了多少钱
  • 建立一个网站要多久开发直播软件需要多少钱
  • 如何查网站的备案号北京seo百科
  • 年栾洪全单页做网站教程效果图是怎么做出来的
  • 冷色调网站广州短视频制作运营
  • seo网站运营域名备案中网站可以开通
  • 嘉兴手机网站开发费用网站开发工作要求
  • 广东省交通建设监理检测协会网站dede 转wordpress
  • 3g 手机网站建设网站积分系统方案
  • 河南城乡住房和建设厅网站吉林省建设厅网站查询
  • 网站上线稳定后的工作wordpress通过数据库重置账号面膜
  • 建设增塑剂网站网页设计与应用论文