Project

ons

0.01
No commit activity in last 3 years
No release in over 3 years
unoffical aliyun ONS sdk (ruby version).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.12
~> 10.0
~> 3.0
~> 0.45
~> 1.3
~> 0.9

Runtime

~> 2.1
 Project Readme

GitHub issues GitHub forks GitHub stars Yard Docs Gem Version License

Ons

阿里云 ONS 消息队列服务 Ruby SDK(非官方版本)

项目依赖

  • Linux/Unix 系统
  • Ruby 2.1.5 或以上版本
  • Boost C++ 程序库

安装步骤

安装 Ruby 程序

$ rvm install 2.1.5

安装 Boost C++ 程序库

$ apt-get install libboost-all-dev

安装 ons

$ gem install ons

使用方式

环境准备

  • 安装 ons rubygems。
  • 代码里涉及到的 TOPIC、PRODUCER_ID、CONSUMER_ID,需要在 MQ 控制台上创建。 Message Tag 可以完全由应用自定义,具体创建过程可参考 申请MQ资源
  • 使用 MQ 服务的应用程序需要部署在阿里云 ECS 上。

部分资料来自 消息队列 > TCP 接入(专业) > C/C++ SDK 环境准备

生产者

producer = Ons::Producer.new('<ONS_ACCESS_KEY>', '<ONS_SECRET_KEY>', '<ONS_PRODUCER_ID>')

# 资源准备
producer.start

# 在 topic <ONS_TOPIC> 下发送消息
producer.send_message('<ONS_TOPIC>', 'tag', 'Hello, World!')

# 必须在程序退出前调用 shutdown 方法释放相关资源,否则可能出现栈错误
producer.shutdown

更多用法,请参考 {file:samples/producer.rb} 及 API 文档

消费者

consumer = Ons::Consumer.new('<ONS_ACCESS_KEY>', '<ONS_SECRET_KEY>', '<ONS_CONSUMER_ID>')

# 订阅 topic <ONS_TOPIC> 下的所有消息
# 注意,当消息达到时,会调用下述函数,此函数会被调度到单独线程中执行
consumer.subscribe('<ONS_TOPIC>', '*') { |message| p message }

# 资源准备
consumer.start

# 等待消息到达
sleep 32

# 必须在程序退出前调用 shutdown 方法释放相关资源,否则可能出现栈错误
consumer.shutdown

更多用法,请参考 {file:samples/consumer.rb} 及 API 文档

整合到 Rails 项目

推荐使用 ons_on_rails