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