首页 文章 精选 留言 我的

精选列表

搜索[工单流转],共10004篇文章
优秀的个人博客,低调大师

启动服务后,如何同时持续监听消息队列(mns)的消息(工单解决全过程)?

我: 如何监听消息队列的消息?我使用django开发,在启动服务的的时候就开启监听,但是这样由于使用while True,导致服务启动阻塞.请问应该如何解决? 工程师: 多线程并发消费消息,可以参考: https://help.aliyun.com/document_detail/32451.html 虽然是java demo, 原理类似,可以拿来参考。 我: 看起来有点吃力,逻辑是当启动web服务的时候同时启动一个线程,这个线程执行receive_message 工程师: 这个线程执行receive_message 具体遇到什么问题? 具体堵塞在什么地方? 我: 之前的写法是这样,执行到message.receive_message()这里就停在这里了 message = Message(topic='user', queue='register') message.receive_message() 现在我改成了这样: message = Message(topic='user', queue='register') threading.Thread(target=message.receive_message).start() 这样写好像就解决了我的问题 工程师: 抱歉,我们对django开发所知甚少。 相关开发问题,还需要您到相关开发社区去咨询一下。 我: 这跟django没有关系吧 工程师: 如果配置了长轮询https://help.aliyun.com/document_detail/34478.html 那么当队列没有消息时,receive_message会挂住,如果WaitSecond内有消息,立即返回;否则,会等到WaitSecond后才返回。 “执行到message.receive_message()这里就停在这里了” 停止了多长时间? 我: 长时间,一直没有执行下面的代码;还有一个问题,我使用的python的sdk,消息写入队列成功,但是取的时候出现错误,在你们的控制台也是base64出现乱码;我写入的消息内容只有Message内容, 消息取出的是如上图的结构吗? 工程师: 您好,消息的结构是这样的。请问您乱码问题在本地读取也是,还是只是控制台测试是这样? 我: 使用sdk的receive_message(wait_seconds)方法,会报Incorrect padding错误 工程师: 长轮询最长是30秒,如果超过30秒receive_message都没有返回,可以怀疑是代码的问题,建议使用单线程写个最简单的程序(官网python demo),先将receive_message调试成功。 关于乱码: queue提供的sdk,会默认对发送的消息做Base64 Encode,对接收到的消息做Base64 Decode。 所以如果使用queue sdk来发送,sdk接收是没有问题的。 在队列控制台点击“接收消息”时,您需要指定使用base64解码. 我: 问题好像已经解决了 1.开启进程可以解决持续监听队列消息的问题 2.关于编码问题,python sdk中, Queue和Topic都有发送消息的方法,Queue.send_message()默认经过base64编码,使用Queue.receive_message时默认解码所以可以正常执行(你们官方示例就是这样),但是Topic.publish_message()默认写入队列时未经过base64编码,但是官方未给出主题队列获取消息的示例,则同样使用Queue.receive_message获取消息,则会报错,只要在获取Queue示例queue后,再执行queue.set_encoding(False),然后在获取消息就不会报错了 工程师: topic提供的sdk, 默认是不做任何编解码的。所以如果用sdk发送消息到topic, 配置推送消息到队列,用python sdk拉取队列消息,是会产生乱码的,需要自行做base64解码。 php: 从1.2.1版本开始,Queue提供了禁用Base64的选项,需要在getQueueRef的时候传入参数$base64 = FALSE;java: 从1.1.0版本开始,消息Base64编码支持可选。 其他语言的queue sdk目前还不提供base64编解码可选。

优秀的个人博客,低调大师

DataHub通过DataConnector流转到MaxCompute全链路测试

概述 前面通过博客:流数据同步DataConnector测试整理简要介绍了DataConnector的配置。下面通过一个示例,从maxcompute建表开始,介绍整个链路的实现。 实验目的 使用Datahub SDK写入数据到Topic,进而经过Dataconnector推送数据到maxcompute的数据表。 实验步骤 1、Dataworks建表SQL脚本 CREATE TABLE IF NOT EXISTS ods_log_tracker( ip STRING COMMENT 'client ip address', user STRING, accesstime string, method STRING COMMENT 'HTTP request type, such as GET POST...', url STRING, prot

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册