tofu-extend-lockstep
lockstep extend of tofu
$ opm get d80x86/tofu-extend-lockstep
tofu-extend-lockstep
lockstep extend of tofu
很多业务都是有序的,或必须当某个业务完成后才能执行下一个业务。这时我们就需要在多个worker工作模式下,进行同步执行某个业务,确保业务的有序性。
安装
-- 在项目配置文件 tofu.package.lua 添加
deps = {
--
-- 其它配置 ...
--
'd80x86/tofu-extend.lockstep',
}
使用tofu安装
./tofu install
使用配置
-- 项目配置文件 conf/extend.lua
extend = {
-- 添加同步执行扩展组件
{
named = 'lockstep',
default = {
handle = 'resty.tofu.extend.lockstep',
options = {}
}
}
}
配置options
| 参数名 | 类型 | 说明 | 缺省 | | ------- | ------ | ------------------- | ------------------ | | timeout | float | 锁定超时时长(秒) | 5 | | shm | string | ngx.share.DICT 名称 | tofu_lockstep_dict |
Lua API
tofu.lockstep(key, fun [, ...args])
以key为原子锁,直到 fun 函数执行完后自动释放锁。return fun(...args)
key
string 键名称fun
function 函数...args
any fun 函数的参数
使用样例
local key = 'printer'
local fun = function (user_id)
-- ... 业务处理
end
tofu.lockstep(key, fun, user_id)
Authors
d
License
mit
Versions
-
lockstep extend of tofu 2021-09-23 03:44:15