lua-resty-beanstalkd
=基于 cosocket API 的 ngx_lua Lua beastalkd 客户端驱动程序
$ opm get iresty/lua-resty-beanstalkd
名称
lua-resty-beanstalkd - ngx_lua 的非阻塞 beanstalkd 库。
状态
此库被认为是实验性的,并且仍在积极开发中。
API 仍在不断变化,可能会在未经通知的情况下更改。
描述
此库需要 nginx 和 ngx_lua 模块
概要
lua_package_path "/path/to/lua-resty-beanstalkd/lib/?.lua;;";
server {
location /test {
content_by_lua '
local beanstalkd = require 'resty.beanstalkd'
-- new and connect
local bean, err = beanstalkd:new()
if not bean then
ngx.say("failed to init beanstalkd:", err)
return
end
ngx.say("initialized ok")
local ok, err = bean:connect()
if not ok then
ngx.say("failed to connect beanstalkd:", err)
return
end
ngx.say("connect ok")
-- use tube
local ok, err = bean:use("smallfish")
if not ok then
ngx.say("failed to use tube:", err)
end
ngx.say("use smallfish tube ok")
-- put job
local id, err = bean:put("hello")
if not id then
ngx.say("failed to put hello to smallfish tube, error:", err)
end
ngx.say("put hello to smallfish tube, id:", id)
-- watch tube
local ok, err = bean:watch("smallfish")
if not ok then
ngx.say("failed to watch tube smallfish, error:", err)
return
end
ngx.say("watch smallfish tube ok, tube size:", ok)
-- reserve job,with optional timeout in seconds. reserve(timeout?)
local id, data = bean:reserve()
if not id then
ngx.say("reserve hello failed, error:", id, data)
else
ngx.say("reserve hello ok, id:", id, "data:", data)
end
-- release job
local ok, err = bean:release(id)
if not ok then
ngx.say("failed to release, id:", id, " error:", err)
else
ngx.say("release ok, id:", id)
end
local id, data = bean:reserve()
if not id then
ngx.say("reserve hello failed, error:", id, data)
else
ngx.say("reserve hello ok, id:", id, " data:", data)
end
-- peek job
local id, data = bean:peek(id)
if not id then
ngx.say("peek failed, id not found")
else
ngx.say("peek ok, data:", data)
end
-- bury job
local ok, err = bean:bury(id)
if not ok then
ngx.say("bury failed, id:", id, " error:", err)
else
ngx.say("bury ok, id:", id)
end
-- kick job
local count, err = bean:kick(1)
if not count then
ngx.say("kick failed, error:", err)
else
ngx.say("kick ok, count:", count)
end
local id, data = bean:reserve()
if not id then
ngx.say("reserve hello failed, error:", id, data)
else
ngx.say("reserve hello ok, id:", id, " data:", data)
end
-- delete job
local ok, err = bean:delete(id)
if ok then
ngx.say("delete ok, id:", id)
else
ngx.say("delete failed, id:", id, ok, err)
end
-- put it into the connection pool of size 100,
-- with 0 idle timeout
bean:set_keepalive(0, 100)
-- close and quit beanstalkd
-- bean:close()
';
}
}
作者
陈“小鱼”晓玉 <smallfish.xy@gmail.com>
版权和许可
此模块根据 BSD 许可证授权。
版权所有 (C) 2012,陈“小鱼”晓玉 <smallfish.xy@gmail.com>。
部分代码来自 lua-resty-memcached 版权所有 (C) 2012,张“agentzh”逸春 <agentzh@gmail.com>。
保留所有权利。
在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用此软件,无论是否修改。
源代码的再分发必须保留上述版权声明、此条件列表以及以下免责声明。
二进制形式的再分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表以及以下免责声明。
本软件由版权持有人和贡献者按“现状”提供,任何明示或暗示的保证,包括但不限于适销性和特定用途适用性的暗示保证,均被排除在外。在任何情况下,版权持有人或贡献者均不对任何直接的、间接的、附带的、特殊的、示例性的或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断)负责,无论其原因如何,以及无论是在合同、严格责任或侵权行为(包括疏忽或其他)的理论下,无论是否由使用本软件引起,即使已被告知此类损害的可能性。
另请参阅
作者
membphis
许可证
2bsd
版本
-
=基于 cosocket API 的 ngx_lua Lua beastalkd 客户端驱动程序 2016-09-30 08:04:19