Fix bug with RedisConnection polling freqeuency

This commit is contained in:
Daniel Sockwell 2020-04-05 13:28:17 -04:00
parent 63fb29320d
commit ebd0da7fe5
4 changed files with 5 additions and 3 deletions

View File

@ -60,6 +60,7 @@ impl fmt::Display for EnvVar {
"REDIS_PASSWORD", "REDIS_PASSWORD",
"REDIS_USER", "REDIS_USER",
"REDIS_DB", "REDIS_DB",
"REDIS_FREQ",
] ]
.iter() .iter()
{ {

View File

@ -59,7 +59,7 @@ For similar functionality, you may wish to set a REDIS_NAMESPACE";
host: RedisHost::default().maybe_update(env.get("REDIS_HOST")), host: RedisHost::default().maybe_update(env.get("REDIS_HOST")),
db: RedisDb::default().maybe_update(env.get("REDIS_DB")), db: RedisDb::default().maybe_update(env.get("REDIS_DB")),
namespace: RedisNamespace::default().maybe_update(env.get("REDIS_NAMESPACE")), namespace: RedisNamespace::default().maybe_update(env.get("REDIS_NAMESPACE")),
polling_interval: RedisInterval::default().maybe_update(env.get("REDIS_POLL_INTERVAL")), polling_interval: RedisInterval::default().maybe_update(env.get("REDIS_FREQ")),
}; };
if cfg.db.is_some() { if cfg.db.is_some() {

View File

@ -21,7 +21,7 @@ from_env_var!(
/// How frequently to poll Redis /// How frequently to poll Redis
let name = RedisInterval; let name = RedisInterval;
let default: Duration = Duration::from_millis(100); let default: Duration = Duration::from_millis(100);
let (env_var, allowed_values) = ("REDIS_POLL_INTERVAL", "a number of milliseconds"); let (env_var, allowed_values) = ("REDIS_FREQ", "a number of milliseconds");
let from_str = |s| s.parse().map(Duration::from_millis).ok(); let from_str = |s| s.parse().map(Duration::from_millis).ok();
); );
from_env_var!( from_env_var!(

View File

@ -61,7 +61,8 @@ impl RedisConn {
if self.redis_polled_at.elapsed() > self.redis_poll_interval { if self.redis_polled_at.elapsed() > self.redis_poll_interval {
if let Ok(bytes_read) = self.primary.read(&mut buffer) { if let Ok(bytes_read) = self.primary.read(&mut buffer) {
self.redis_input.extend_from_slice(&buffer[..bytes_read]); self.redis_input.extend_from_slice(&buffer[..bytes_read]);
} };
self.redis_polled_at = Instant::now();
} }
if self.redis_input.is_empty() { if self.redis_input.is_empty() {
return Ok(Async::NotReady); return Ok(Async::NotReady);