MT#55283 scale redis timeouts

Change-Id: I7594f38da85a61c3846f8c5eb41ee01b63de36ac
pull/1855/merge
Richard Fuchs 1 week ago
parent e12ba22a7c
commit 206e7db48b

@ -1735,15 +1735,15 @@ static void cli_incoming_set_rediscmdtimeout(str *instr, struct cli_writer *cw,
fail = 1;
}
} else {
if (rtpe_redis && redis_set_timeout(rtpe_redis, timeout)) {
if (rtpe_redis && redis_set_timeout(rtpe_redis, timeout * 1000LL)) {
cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis %ld\n", timeout);
fail = 1;
}
if (rtpe_redis_write && redis_set_timeout(rtpe_redis_write, timeout)) {
if (rtpe_redis_write && redis_set_timeout(rtpe_redis_write, timeout * 1000LL)) {
cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-write %ld\n", timeout);
fail = 1;
}
if (rtpe_redis_notify && redis_set_timeout(rtpe_redis_notify, timeout)) {
if (rtpe_redis_notify && redis_set_timeout(rtpe_redis_notify, timeout * 1000LL)) {
cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-notify %ld\n", timeout);
fail = 1;
}

@ -232,8 +232,7 @@ int redis_set_timeout(struct redis* r, int64_t timeout) {
if (!timeout)
return 0;
tv_cmd.tv_sec = timeout / 1000;
tv_cmd.tv_usec = (timeout % 1000) * 1000;
tv_cmd = timeval_from_us(timeout);
if (redisSetTimeout(r->ctx, tv_cmd))
return -1;
ilog(LOG_INFO, "Setting timeout for Redis commands to %" PRId64 " milliseconds", timeout);
@ -273,11 +272,10 @@ static int redis_connect(struct redis *r, int wait, bool resolve) {
r->ctx = NULL;
r->current_db = -1;
connect_timeout = atomic_get_na(&rtpe_config.redis_connect_timeout);
cmd_timeout = atomic_get_na(&rtpe_config.redis_cmd_timeout);
connect_timeout = atomic_get_na(&rtpe_config.redis_connect_timeout) * 1000LL;
cmd_timeout = atomic_get_na(&rtpe_config.redis_cmd_timeout) * 1000LL;
tv.tv_sec = connect_timeout / 1000;
tv.tv_usec = (connect_timeout % 1000) * 1000;
tv = timeval_from_us(connect_timeout);
/* re-resolve if asked */
if (resolve && r->hostname) {
@ -297,7 +295,7 @@ static int redis_connect(struct redis *r, int wait, bool resolve) {
if (r->ctx->err)
goto err2;
if (redis_set_timeout(r,cmd_timeout))
if (redis_set_timeout(r, cmd_timeout))
goto err2;
if (r->auth) {

@ -100,7 +100,7 @@ void redis_delete(call_t *, struct redis *);
void redis_wipe(struct redis *);
int redis_async_event_base_action(struct redis *r, enum event_base_action);
int redis_notify_subscribe_action(struct redis *r, enum subscribe_action action, int keyspace);
int redis_set_timeout(struct redis* r, int64_t timeout); // XXX scale to micro
int redis_set_timeout(struct redis* r, int64_t timeout);
int redis_reconnect(struct redis* r);

Loading…
Cancel
Save