mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-14 08:50:53 +08:00
Merge branch 'gitee-master' into gitlab-upstream
This commit is contained in:
commit
1d5cdb4298
@ -16,6 +16,7 @@ rdb::rdb() : db_(nullptr) {}
|
|||||||
|
|
||||||
rdb::~rdb() {
|
rdb::~rdb() {
|
||||||
delete db_;
|
delete db_;
|
||||||
|
logger("rdb in %s closed", path_.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool rdb::open(const char* path) {
|
bool rdb::open(const char* path) {
|
||||||
|
@ -17,6 +17,7 @@ wdb::wdb(size_t cache_max) : db_(nullptr), cache_max_(cache_max) {}
|
|||||||
wdb::~wdb() {
|
wdb::~wdb() {
|
||||||
if (db_) {
|
if (db_) {
|
||||||
db_->close(db_, nullptr);
|
db_->close(db_, nullptr);
|
||||||
|
logger("wdb in %s closed", path_.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,4 +97,4 @@ void wdb::put_session(wt_sess* sess) {
|
|||||||
|
|
||||||
} // namespace pkv
|
} // namespace pkv
|
||||||
|
|
||||||
#endif // HAS_WT
|
#endif // HAS_WT
|
||||||
|
@ -1,7 +1,16 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include <signal.h>
|
||||||
#include "proto/redis_coder.h"
|
#include "proto/redis_coder.h"
|
||||||
#include "master_service.h"
|
#include "master_service.h"
|
||||||
|
|
||||||
|
static void on_sigint(int) {
|
||||||
|
master_service& ms = acl::singleton2<master_service>::get_instance();
|
||||||
|
logger("---Begin to close db---");
|
||||||
|
ms.close_db();
|
||||||
|
logger("---Close db ok---");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
static bool test_redis_coder(const char* file) {
|
static bool test_redis_coder(const char* file) {
|
||||||
#if 1
|
#if 1
|
||||||
printf(">>>>>>>>Begin to test redis parsing<<<<<<<<<\r\n");
|
printf(">>>>>>>>Begin to test redis parsing<<<<<<<<<\r\n");
|
||||||
@ -42,6 +51,8 @@ int main(int argc, char *argv[]) {
|
|||||||
test_redis_coder(file);
|
test_redis_coder(file);
|
||||||
return 0;
|
return 0;
|
||||||
} else if (argc == 1 || (argc >= 2 && strcasecmp(argv[1], "alone") == 0)) {
|
} else if (argc == 1 || (argc >= 2 && strcasecmp(argv[1], "alone") == 0)) {
|
||||||
|
signal(SIGINT, on_sigint);
|
||||||
|
|
||||||
// 日志输出至标准输出
|
// 日志输出至标准输出
|
||||||
acl::log::stdout_open(true);
|
acl::log::stdout_open(true);
|
||||||
// 禁止生成 acl_master.log 日志
|
// 禁止生成 acl_master.log 日志
|
||||||
|
@ -111,8 +111,15 @@ void master_service::proc_on_init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void master_service::close_db() {
|
||||||
|
if (db_) {
|
||||||
|
db_ = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void master_service::proc_on_exit() {
|
void master_service::proc_on_exit() {
|
||||||
logger(">>>proc_on_exit<<<");
|
logger(">>>proc_on_exit<<<");
|
||||||
|
close_db();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool master_service::proc_on_sighup(acl::string&) {
|
bool master_service::proc_on_sighup(acl::string&) {
|
||||||
|
@ -7,6 +7,8 @@ public:
|
|||||||
master_service() = default;
|
master_service() = default;
|
||||||
~master_service() override = default;
|
~master_service() override = default;
|
||||||
|
|
||||||
|
void close_db();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// @override
|
// @override
|
||||||
void on_accept(acl::socket_stream& conn) override;
|
void on_accept(acl::socket_stream& conn) override;
|
||||||
@ -27,7 +29,7 @@ protected:
|
|||||||
bool proc_on_sighup(acl::string&) override;
|
bool proc_on_sighup(acl::string&) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
pkv::shared_db db_;
|
pkv::shared_db db_ = nullptr;
|
||||||
|
|
||||||
void run(acl::socket_stream& conn, size_t size);
|
void run(acl::socket_stream& conn, size_t size);
|
||||||
};
|
};
|
||||||
|
131
app/wizard_demo/pkv/nodb.cf
Normal file
131
app/wizard_demo/pkv/nodb.cf
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
|
||||||
|
service pkv
|
||||||
|
{
|
||||||
|
# 进程是否禁止运行
|
||||||
|
master_disable = no
|
||||||
|
# 服务地址及端口号
|
||||||
|
# for master_type = inet
|
||||||
|
# master_service = 127.0.0.1|5001
|
||||||
|
# for master_type = unix
|
||||||
|
# master_service = echo.sock
|
||||||
|
# for master_type = sock
|
||||||
|
master_service = 127.0.0.1|19001
|
||||||
|
|
||||||
|
# 服务监听为域套接口
|
||||||
|
# master_service = aio_echo.sock
|
||||||
|
# 服务类型
|
||||||
|
# master_type = inet
|
||||||
|
# master_type = unix
|
||||||
|
master_type = sock
|
||||||
|
|
||||||
|
# 停止子进程时是否采用强行停止的方式(即给子进程发送 SIGTERM 信号)
|
||||||
|
master_stop_kill = false
|
||||||
|
# 当 master_stop_kill 为 true 时,该配置决定是否要等待子进程退出
|
||||||
|
master_stop_wait = false
|
||||||
|
|
||||||
|
# 当系统支持 SO_REUSEPORT 时,是否启用该功能
|
||||||
|
master_reuseport = yes
|
||||||
|
# 当启用 SO_REUSEPORT 时(即 master_reuseport=yes 时), 是否需要 acl_master
|
||||||
|
# 也监听该地址, 对于使用旧版 acl(< 3.5.3-17) 编写的服务, 必须将此项设为
|
||||||
|
# yes, 即: master_reuseport_listen = yes; 对于使用 acl 版本 >= 3.5.3-17
|
||||||
|
# 编写的服务需设置为 no; 当 master_reuseport=no时,该项设置将被忽略; 当未
|
||||||
|
# 设置此项时内部缺省值为 yes. 以便使 acl_master 保持对于旧版服务的兼容性.
|
||||||
|
master_reuseport_listen = no
|
||||||
|
# 是否针对监听套接口设定为非阻塞方式
|
||||||
|
master_nonblock = yes
|
||||||
|
# 当系统支持 TCP_FASTOPEN 时,是否启用该功能
|
||||||
|
master_fastopen = no
|
||||||
|
|
||||||
|
# 当子进程异常退出时,如果该值非空,则将子进程异常退出的消息通知该服务
|
||||||
|
# master_notify_addr = 127.0.0.1:5801
|
||||||
|
# 邮件通知接收者
|
||||||
|
# master_notify_recipients = zhengshuxin@hotmail.com
|
||||||
|
|
||||||
|
# 是否允许延迟接受客户端连接,如果为0则表示关闭该功能,如果大于0则表示打开此功能
|
||||||
|
# 并且此值代表延迟接受连接的超时值,超过此值时如果客户端依然没有发来数据,则操作
|
||||||
|
# 系统会在系统层直接关闭该连接
|
||||||
|
# master_defer_accept = 0
|
||||||
|
# 是否只允许私有访问, 如果为 y, 则域套接口创建在 {install_path}/var/log/private/ 目录下,
|
||||||
|
# 如果为 n, 则域套接口创建在 {install_path}/var/log/public/ 目录下,
|
||||||
|
master_private = n
|
||||||
|
master_unpriv = n
|
||||||
|
# 是否需要 chroot: n -- no, y -- yes
|
||||||
|
master_chroot = n
|
||||||
|
# 每隔多长时间触发一次,单位为秒(仅对 trigger 模式有效)
|
||||||
|
master_wakeup = -
|
||||||
|
# 最大进程数
|
||||||
|
master_maxproc = 1
|
||||||
|
# 预启动进程数,该值不得大于 master_maxproc
|
||||||
|
master_prefork = 1
|
||||||
|
# 进程程序名
|
||||||
|
master_command = {install_path}/sbin/pkv
|
||||||
|
# 进程日志记录文件
|
||||||
|
master_log = {install_path}/var/log/pkv.log
|
||||||
|
# 调试日志方式,格式:tag:level; tag:level; tab:level, 如:all:1; 101:2
|
||||||
|
# master_debug =
|
||||||
|
# 进程启动参数,只能为: -u [是否允许以某普通用户的身份运行]
|
||||||
|
# master_args =
|
||||||
|
# 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值
|
||||||
|
# master_env = mempool_limit:512000000
|
||||||
|
# 当启动多个子进程实例时,该开关控制多个子进程在接收连接时是否向 acl_master 发送消息报告自己的状态
|
||||||
|
# master_status_notify = 1
|
||||||
|
# 程序标准输出重定向至指定文件中
|
||||||
|
# master_stdout = {install_path}/var/log/stdout.log
|
||||||
|
# 程序错误输出重定向至指定文件中
|
||||||
|
# master_stderr = {install_path}/var/log/stderr.log
|
||||||
|
|
||||||
|
# 事件引擎: kernel, poll, select, io_uring
|
||||||
|
fiber_schedule_event = kernel
|
||||||
|
# fiber_schedule_event = io_uring
|
||||||
|
# 是否允许产生 core 文件
|
||||||
|
# fiber_enable_core = 1
|
||||||
|
# core 文件大小限制,-1 表示不限制 core 文件大小,0 表示禁止产生 core,> 0 表示 core 文件最大大小
|
||||||
|
# fiber_core_limit = -1
|
||||||
|
# 进程退出时是否禁止产生 core 文件
|
||||||
|
# fiber_disable_core_onexit = 1
|
||||||
|
# 每个进程实例处理连接数的最大次数,超过此值后进程实例主动退出
|
||||||
|
fiber_use_limit = 0
|
||||||
|
# 每个进程实例的空闲超时时间,超过此值后进程实例主动退出
|
||||||
|
fiber_idle_limit = 0
|
||||||
|
# 每个进程启动的线程数
|
||||||
|
fiber_threads = 1
|
||||||
|
# 进程运行时所在的路径
|
||||||
|
fiber_queue_dir = {install_path}/var
|
||||||
|
# 读写超时时间, 单位为秒
|
||||||
|
fiber_rw_timeout = 120
|
||||||
|
# 读缓冲区的缓冲区大小
|
||||||
|
fiber_buf_size = 8192
|
||||||
|
# 进程运行时的用户身份
|
||||||
|
fiber_owner = root
|
||||||
|
|
||||||
|
# 当启用 master_dispatch 连接分开服务后,该配置指定 master_dispatch 所监听的
|
||||||
|
# 域套接口的全路径,这样本子进程就可以从 master_dispatch 获得客户端连接
|
||||||
|
# fiber_dispatch_addr = {install_path}/var/private/dispatch.sock
|
||||||
|
# 当 fiber_dispatch_addr 开启后,下面参数控制本服务进程发给前端 master_dispatch 的服务标识信息
|
||||||
|
# fiber_dispatch_type = default
|
||||||
|
|
||||||
|
# 线程的堆栈空间大小,单位为字节
|
||||||
|
fiber_stack_size = 256000
|
||||||
|
# 允许访问 udserver 的客户端IP地址范围
|
||||||
|
# fiber_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1
|
||||||
|
fiber_access_allow = all
|
||||||
|
|
||||||
|
# 当 acl_master 退出时,如果该值置1则该程序不等所有连接处理完毕便立即退出
|
||||||
|
fiber_quick_abort = 1
|
||||||
|
|
||||||
|
# 是否启用协程共享栈模式
|
||||||
|
fiber_share_stack = 0
|
||||||
|
|
||||||
|
# 当 fiber_quick_abort 为 0 且本配置项大于 0 时,该配置项才有效,指定了
|
||||||
|
# 本进程在所有连接退出前的最大等待时间(秒)
|
||||||
|
fiber_wait_limit = 0
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# 应用自己的配置选项
|
||||||
|
|
||||||
|
disable_serialize = 1
|
||||||
|
disable_save = 1
|
||||||
|
buf_size = 8192
|
||||||
|
dbpath = ./data
|
||||||
|
dbtype = wdb
|
||||||
|
}
|
129
app/wizard_demo/pkv/rdb.cf
Normal file
129
app/wizard_demo/pkv/rdb.cf
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
|
||||||
|
service pkv
|
||||||
|
{
|
||||||
|
# 进程是否禁止运行
|
||||||
|
master_disable = no
|
||||||
|
# 服务地址及端口号
|
||||||
|
# for master_type = inet
|
||||||
|
# master_service = 127.0.0.1|5001
|
||||||
|
# for master_type = unix
|
||||||
|
# master_service = echo.sock
|
||||||
|
# for master_type = sock
|
||||||
|
master_service = 127.0.0.1|19001
|
||||||
|
|
||||||
|
# 服务监听为域套接口
|
||||||
|
# master_service = aio_echo.sock
|
||||||
|
# 服务类型
|
||||||
|
# master_type = inet
|
||||||
|
# master_type = unix
|
||||||
|
master_type = sock
|
||||||
|
|
||||||
|
# 停止子进程时是否采用强行停止的方式(即给子进程发送 SIGTERM 信号)
|
||||||
|
master_stop_kill = false
|
||||||
|
# 当 master_stop_kill 为 true 时,该配置决定是否要等待子进程退出
|
||||||
|
master_stop_wait = false
|
||||||
|
|
||||||
|
# 当系统支持 SO_REUSEPORT 时,是否启用该功能
|
||||||
|
master_reuseport = yes
|
||||||
|
# 当启用 SO_REUSEPORT 时(即 master_reuseport=yes 时), 是否需要 acl_master
|
||||||
|
# 也监听该地址, 对于使用旧版 acl(< 3.5.3-17) 编写的服务, 必须将此项设为
|
||||||
|
# yes, 即: master_reuseport_listen = yes; 对于使用 acl 版本 >= 3.5.3-17
|
||||||
|
# 编写的服务需设置为 no; 当 master_reuseport=no时,该项设置将被忽略; 当未
|
||||||
|
# 设置此项时内部缺省值为 yes. 以便使 acl_master 保持对于旧版服务的兼容性.
|
||||||
|
master_reuseport_listen = no
|
||||||
|
# 是否针对监听套接口设定为非阻塞方式
|
||||||
|
master_nonblock = yes
|
||||||
|
# 当系统支持 TCP_FASTOPEN 时,是否启用该功能
|
||||||
|
master_fastopen = no
|
||||||
|
|
||||||
|
# 当子进程异常退出时,如果该值非空,则将子进程异常退出的消息通知该服务
|
||||||
|
# master_notify_addr = 127.0.0.1:5801
|
||||||
|
# 邮件通知接收者
|
||||||
|
# master_notify_recipients = zhengshuxin@hotmail.com
|
||||||
|
|
||||||
|
# 是否允许延迟接受客户端连接,如果为0则表示关闭该功能,如果大于0则表示打开此功能
|
||||||
|
# 并且此值代表延迟接受连接的超时值,超过此值时如果客户端依然没有发来数据,则操作
|
||||||
|
# 系统会在系统层直接关闭该连接
|
||||||
|
# master_defer_accept = 0
|
||||||
|
# 是否只允许私有访问, 如果为 y, 则域套接口创建在 {install_path}/var/log/private/ 目录下,
|
||||||
|
# 如果为 n, 则域套接口创建在 {install_path}/var/log/public/ 目录下,
|
||||||
|
master_private = n
|
||||||
|
master_unpriv = n
|
||||||
|
# 是否需要 chroot: n -- no, y -- yes
|
||||||
|
master_chroot = n
|
||||||
|
# 每隔多长时间触发一次,单位为秒(仅对 trigger 模式有效)
|
||||||
|
master_wakeup = -
|
||||||
|
# 最大进程数
|
||||||
|
master_maxproc = 1
|
||||||
|
# 预启动进程数,该值不得大于 master_maxproc
|
||||||
|
master_prefork = 1
|
||||||
|
# 进程程序名
|
||||||
|
master_command = {install_path}/sbin/pkv
|
||||||
|
# 进程日志记录文件
|
||||||
|
master_log = {install_path}/var/log/pkv.log
|
||||||
|
# 调试日志方式,格式:tag:level; tag:level; tab:level, 如:all:1; 101:2
|
||||||
|
# master_debug =
|
||||||
|
# 进程启动参数,只能为: -u [是否允许以某普通用户的身份运行]
|
||||||
|
# master_args =
|
||||||
|
# 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值
|
||||||
|
# master_env = mempool_limit:512000000
|
||||||
|
# 当启动多个子进程实例时,该开关控制多个子进程在接收连接时是否向 acl_master 发送消息报告自己的状态
|
||||||
|
# master_status_notify = 1
|
||||||
|
# 程序标准输出重定向至指定文件中
|
||||||
|
# master_stdout = {install_path}/var/log/stdout.log
|
||||||
|
# 程序错误输出重定向至指定文件中
|
||||||
|
# master_stderr = {install_path}/var/log/stderr.log
|
||||||
|
|
||||||
|
# 事件引擎: kernel, poll, select, io_uring
|
||||||
|
fiber_schedule_event = kernel
|
||||||
|
# fiber_schedule_event = io_uring
|
||||||
|
# 是否允许产生 core 文件
|
||||||
|
# fiber_enable_core = 1
|
||||||
|
# core 文件大小限制,-1 表示不限制 core 文件大小,0 表示禁止产生 core,> 0 表示 core 文件最大大小
|
||||||
|
# fiber_core_limit = -1
|
||||||
|
# 进程退出时是否禁止产生 core 文件
|
||||||
|
# fiber_disable_core_onexit = 1
|
||||||
|
# 每个进程实例处理连接数的最大次数,超过此值后进程实例主动退出
|
||||||
|
fiber_use_limit = 0
|
||||||
|
# 每个进程实例的空闲超时时间,超过此值后进程实例主动退出
|
||||||
|
fiber_idle_limit = 0
|
||||||
|
# 每个进程启动的线程数
|
||||||
|
fiber_threads = 1
|
||||||
|
# 进程运行时所在的路径
|
||||||
|
fiber_queue_dir = {install_path}/var
|
||||||
|
# 读写超时时间, 单位为秒
|
||||||
|
fiber_rw_timeout = 120
|
||||||
|
# 读缓冲区的缓冲区大小
|
||||||
|
fiber_buf_size = 8192
|
||||||
|
# 进程运行时的用户身份
|
||||||
|
fiber_owner = root
|
||||||
|
|
||||||
|
# 当启用 master_dispatch 连接分开服务后,该配置指定 master_dispatch 所监听的
|
||||||
|
# 域套接口的全路径,这样本子进程就可以从 master_dispatch 获得客户端连接
|
||||||
|
# fiber_dispatch_addr = {install_path}/var/private/dispatch.sock
|
||||||
|
# 当 fiber_dispatch_addr 开启后,下面参数控制本服务进程发给前端 master_dispatch 的服务标识信息
|
||||||
|
# fiber_dispatch_type = default
|
||||||
|
|
||||||
|
# 线程的堆栈空间大小,单位为字节
|
||||||
|
fiber_stack_size = 256000
|
||||||
|
# 允许访问 udserver 的客户端IP地址范围
|
||||||
|
# fiber_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1
|
||||||
|
fiber_access_allow = all
|
||||||
|
|
||||||
|
# 当 acl_master 退出时,如果该值置1则该程序不等所有连接处理完毕便立即退出
|
||||||
|
fiber_quick_abort = 1
|
||||||
|
|
||||||
|
# 是否启用协程共享栈模式
|
||||||
|
fiber_share_stack = 0
|
||||||
|
|
||||||
|
# 当 fiber_quick_abort 为 0 且本配置项大于 0 时,该配置项才有效,指定了
|
||||||
|
# 本进程在所有连接退出前的最大等待时间(秒)
|
||||||
|
fiber_wait_limit = 0
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# 应用自己的配置选项
|
||||||
|
|
||||||
|
buf_size = 8192
|
||||||
|
dbpath = ./data
|
||||||
|
dbtype = rdb
|
||||||
|
}
|
129
app/wizard_demo/pkv/wdb.cf
Normal file
129
app/wizard_demo/pkv/wdb.cf
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
|
||||||
|
service pkv
|
||||||
|
{
|
||||||
|
# 进程是否禁止运行
|
||||||
|
master_disable = no
|
||||||
|
# 服务地址及端口号
|
||||||
|
# for master_type = inet
|
||||||
|
# master_service = 127.0.0.1|5001
|
||||||
|
# for master_type = unix
|
||||||
|
# master_service = echo.sock
|
||||||
|
# for master_type = sock
|
||||||
|
master_service = 127.0.0.1|19001
|
||||||
|
|
||||||
|
# 服务监听为域套接口
|
||||||
|
# master_service = aio_echo.sock
|
||||||
|
# 服务类型
|
||||||
|
# master_type = inet
|
||||||
|
# master_type = unix
|
||||||
|
master_type = sock
|
||||||
|
|
||||||
|
# 停止子进程时是否采用强行停止的方式(即给子进程发送 SIGTERM 信号)
|
||||||
|
master_stop_kill = false
|
||||||
|
# 当 master_stop_kill 为 true 时,该配置决定是否要等待子进程退出
|
||||||
|
master_stop_wait = false
|
||||||
|
|
||||||
|
# 当系统支持 SO_REUSEPORT 时,是否启用该功能
|
||||||
|
master_reuseport = yes
|
||||||
|
# 当启用 SO_REUSEPORT 时(即 master_reuseport=yes 时), 是否需要 acl_master
|
||||||
|
# 也监听该地址, 对于使用旧版 acl(< 3.5.3-17) 编写的服务, 必须将此项设为
|
||||||
|
# yes, 即: master_reuseport_listen = yes; 对于使用 acl 版本 >= 3.5.3-17
|
||||||
|
# 编写的服务需设置为 no; 当 master_reuseport=no时,该项设置将被忽略; 当未
|
||||||
|
# 设置此项时内部缺省值为 yes. 以便使 acl_master 保持对于旧版服务的兼容性.
|
||||||
|
master_reuseport_listen = no
|
||||||
|
# 是否针对监听套接口设定为非阻塞方式
|
||||||
|
master_nonblock = yes
|
||||||
|
# 当系统支持 TCP_FASTOPEN 时,是否启用该功能
|
||||||
|
master_fastopen = no
|
||||||
|
|
||||||
|
# 当子进程异常退出时,如果该值非空,则将子进程异常退出的消息通知该服务
|
||||||
|
# master_notify_addr = 127.0.0.1:5801
|
||||||
|
# 邮件通知接收者
|
||||||
|
# master_notify_recipients = zhengshuxin@hotmail.com
|
||||||
|
|
||||||
|
# 是否允许延迟接受客户端连接,如果为0则表示关闭该功能,如果大于0则表示打开此功能
|
||||||
|
# 并且此值代表延迟接受连接的超时值,超过此值时如果客户端依然没有发来数据,则操作
|
||||||
|
# 系统会在系统层直接关闭该连接
|
||||||
|
# master_defer_accept = 0
|
||||||
|
# 是否只允许私有访问, 如果为 y, 则域套接口创建在 {install_path}/var/log/private/ 目录下,
|
||||||
|
# 如果为 n, 则域套接口创建在 {install_path}/var/log/public/ 目录下,
|
||||||
|
master_private = n
|
||||||
|
master_unpriv = n
|
||||||
|
# 是否需要 chroot: n -- no, y -- yes
|
||||||
|
master_chroot = n
|
||||||
|
# 每隔多长时间触发一次,单位为秒(仅对 trigger 模式有效)
|
||||||
|
master_wakeup = -
|
||||||
|
# 最大进程数
|
||||||
|
master_maxproc = 1
|
||||||
|
# 预启动进程数,该值不得大于 master_maxproc
|
||||||
|
master_prefork = 1
|
||||||
|
# 进程程序名
|
||||||
|
master_command = {install_path}/sbin/pkv
|
||||||
|
# 进程日志记录文件
|
||||||
|
master_log = {install_path}/var/log/pkv.log
|
||||||
|
# 调试日志方式,格式:tag:level; tag:level; tab:level, 如:all:1; 101:2
|
||||||
|
# master_debug =
|
||||||
|
# 进程启动参数,只能为: -u [是否允许以某普通用户的身份运行]
|
||||||
|
# master_args =
|
||||||
|
# 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值
|
||||||
|
# master_env = mempool_limit:512000000
|
||||||
|
# 当启动多个子进程实例时,该开关控制多个子进程在接收连接时是否向 acl_master 发送消息报告自己的状态
|
||||||
|
# master_status_notify = 1
|
||||||
|
# 程序标准输出重定向至指定文件中
|
||||||
|
# master_stdout = {install_path}/var/log/stdout.log
|
||||||
|
# 程序错误输出重定向至指定文件中
|
||||||
|
# master_stderr = {install_path}/var/log/stderr.log
|
||||||
|
|
||||||
|
# 事件引擎: kernel, poll, select, io_uring
|
||||||
|
fiber_schedule_event = kernel
|
||||||
|
# fiber_schedule_event = io_uring
|
||||||
|
# 是否允许产生 core 文件
|
||||||
|
# fiber_enable_core = 1
|
||||||
|
# core 文件大小限制,-1 表示不限制 core 文件大小,0 表示禁止产生 core,> 0 表示 core 文件最大大小
|
||||||
|
# fiber_core_limit = -1
|
||||||
|
# 进程退出时是否禁止产生 core 文件
|
||||||
|
# fiber_disable_core_onexit = 1
|
||||||
|
# 每个进程实例处理连接数的最大次数,超过此值后进程实例主动退出
|
||||||
|
fiber_use_limit = 0
|
||||||
|
# 每个进程实例的空闲超时时间,超过此值后进程实例主动退出
|
||||||
|
fiber_idle_limit = 0
|
||||||
|
# 每个进程启动的线程数
|
||||||
|
fiber_threads = 1
|
||||||
|
# 进程运行时所在的路径
|
||||||
|
fiber_queue_dir = {install_path}/var
|
||||||
|
# 读写超时时间, 单位为秒
|
||||||
|
fiber_rw_timeout = 120
|
||||||
|
# 读缓冲区的缓冲区大小
|
||||||
|
fiber_buf_size = 8192
|
||||||
|
# 进程运行时的用户身份
|
||||||
|
fiber_owner = root
|
||||||
|
|
||||||
|
# 当启用 master_dispatch 连接分开服务后,该配置指定 master_dispatch 所监听的
|
||||||
|
# 域套接口的全路径,这样本子进程就可以从 master_dispatch 获得客户端连接
|
||||||
|
# fiber_dispatch_addr = {install_path}/var/private/dispatch.sock
|
||||||
|
# 当 fiber_dispatch_addr 开启后,下面参数控制本服务进程发给前端 master_dispatch 的服务标识信息
|
||||||
|
# fiber_dispatch_type = default
|
||||||
|
|
||||||
|
# 线程的堆栈空间大小,单位为字节
|
||||||
|
fiber_stack_size = 256000
|
||||||
|
# 允许访问 udserver 的客户端IP地址范围
|
||||||
|
# fiber_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1
|
||||||
|
fiber_access_allow = all
|
||||||
|
|
||||||
|
# 当 acl_master 退出时,如果该值置1则该程序不等所有连接处理完毕便立即退出
|
||||||
|
fiber_quick_abort = 1
|
||||||
|
|
||||||
|
# 是否启用协程共享栈模式
|
||||||
|
fiber_share_stack = 0
|
||||||
|
|
||||||
|
# 当 fiber_quick_abort 为 0 且本配置项大于 0 时,该配置项才有效,指定了
|
||||||
|
# 本进程在所有连接退出前的最大等待时间(秒)
|
||||||
|
fiber_wait_limit = 0
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# 应用自己的配置选项
|
||||||
|
|
||||||
|
buf_size = 8192
|
||||||
|
dbpath = ./data
|
||||||
|
dbtype = wdb
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user