Rails Worker中ZeroMQ订阅者无法接收消息排查求助
Quake Live服务器ZeroMQ订阅失败问题排查
我尝试从Quake Live服务器订阅ZeroMQ消息,已在QLStats上完成服务器注册(状态为绿色)。但本地基于Rails 7.2.2.1搭建的新项目中,使用ffi-rzmq 2.0.7的Worker始终无法接收消息。
Rails Worker代码
require 'ffi-rzmq' require 'json' class ZmqSubscriberJob include Sidekiq::Job def perform context = ZMQ::Context.new subscriber = context.socket(ZMQ::SUB) username = ENV['ZMQ_USERNAME']&.b password = ENV['ZMQ_PASSWORD']&.b subscriber.setsockopt(ZMQ::PLAIN_USERNAME, username) subscriber.setsockopt(ZMQ::PLAIN_PASSWORD, password) zmq_url = "tcp://#{ENV['ZMQ_HOST']}:#{ENV['ZMQ_PORT']}" subscriber.connect(zmq_url) subscriber.setsockopt(ZMQ::SUBSCRIBE, '') Rails.logger.info "Connected to ZeroMQ PUB socket at: #{zmq_url}, listening for all events." loop do message = '' subscriber.recv_string(message) Rails.logger.info "Received message: #{message}" rescue => e Rails.logger.error "Error: #{e.message}" end ensure subscriber&.close context&.terminate end end
已完成的排查信息
- Quake Live服务器日志确认PUB套接字正常运行:
zmq PUB socket: tcp://0.0.0.0:27960 - QLStats服务器显示认证通过:
I: 25-01-02 10:39:09 zauth: ZAP request mechanism=PLAIN ipaddress=23.88.103.193 I: 25-01-02 10:39:09 zauth: - allowed (PLAIN) username=XXX password=XXX I: 25-01-02 10:39:09 zauth: - ZAP reply status_code=200 status_text=OK - 环境变量
ZMQ_USERNAME和ZMQ_PASSWORD与服务器配置及日志中的凭证完全一致 - Rails Worker未记录任何错误日志
请问是否是ffi-rzmq版本导致的问题?
内容的提问来源于stack exchange,提问作者sckdd
相关产品推荐
相关产品推荐

