Skip to content

betashepherd/mx-queued

 
 

Repository files navigation

mx-queued

Fast and simple message queue server


使用协议:

  • 登录服务器

  auth <user> <pass>\r\n

user: 用户名
pass: 密码

  • 添加一个job到队列中:

  enqueue <queue_name> <priority_value> <delay_time> <job_size>\r\n
  <job_body>\r\n

queue_name: 队列的名称
priority_value: job的优先值, 值越大越优先值越高
delay_time: job要延时的秒数
job_size: job的大小
job_body: job的数据体

  • 从队列中获取一个job

  dequeue <queue_name>\r\n

queue_name: 队列的名称

  • 获取队列的长度

  size <queue_name>\r\n

queue_name: 队列的名称

  • 获取一个job, 并且把这个job暂时放置到回收站

  touch <queue_name>\r\n

queue_name: 队列的名称

  • 删除一个队列

  remove <queue_name>\r\n

queue_name: 队列的名称

  • 把回收站的指定ID的job放置到队列中

  recycle <recycle_id> <priority_value> <delay_time>\r\n

recycle_id: job在回收站的ID, 由touch命令提供
priority_value: job的优先值, 值越大越迟获取到
delay_time: job要延时的秒数

  • 同步执行lua函数 (如果Lua函数操作比较复杂, 可能会阻塞服务器, 所以此时建议使用async命令)

  exec <function> <args> ...\r\n

function: lua函数名
args: 参数个数
...: 可以传递多个参数(参数之间以空格分隔)

  • 异步执行lua函数 (此命令会启用一个线程来执行一个Lua函数)

  async <function> <args> ...\r\n

function: lua函数名
args: 参数个数
...: 可以传递多个参数(参数之间以空格分隔)


安装:


$ install lua
$ cd mx-queue/
$ make

配置参数:


--daemon                      是否使用守护进程模式
--port <port>                 监听的端口
--bgsave-enable               是否开启持久化功能
--bgsave-times <seconds>      多长时间进行一次持久化(单位为:秒)
--bgsave-changes <number>     有多少次数据更新进行一次持久化(也就是说没达到bgsave-times也进行)
--bgsave-path <path>          持久化数据时保存的路径
--recycle-timeout <seconds>   回收站的周期
--log-path <path>             日志保存的路径
--log-level <level>           日志等级, 可以选择(error|notice|debug)这几个
--auth-file <path>            开启认证功能并指定认证文件
--lualib <path>               载入Lua函数库文件(并开启Lua功能)
--version                     打印服务器的版本
--help                        打印使用指南

使用例子:


./mx-queued --log-level debug --bgsave-enable

联系QQ: 280259971
新浪微博: @Yuk_松

顺便卖个广告, 我写的书《PHP核心技术与最佳实践》, 购买地址: http://item.jd.com/11123177.html

About

a fast and simple message queue server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published