diff --git a/app/commands.py b/app/commands.py index 79bd3192d..58bd542eb 100644 --- a/app/commands.py +++ b/app/commands.py @@ -789,6 +789,17 @@ def _update_template(id, name, template_type, content, subject): db.session.commit() +@notify_command(name="clear-redis-list") +@click.option("-n", "--name_of_list", required=True) +def clear_redis_list(name_of_list): + my_len_before = redis_store.llen(name_of_list) + redis_store.ltrim(name_of_list, 1, 0) + my_len_after = redis_store.llen(name_of_list) + current_app.logger.info( + f"Cleared redis list {name_of_list}. Before: {my_len_before} after {my_len_after}" + ) + + @notify_command(name="update-templates") def update_templates(): with open(current_app.config["CONFIG_FILES"] + "/templates.json") as f: diff --git a/app/models.py b/app/models.py index f9be291b1..f78f630ea 100644 --- a/app/models.py +++ b/app/models.py @@ -1717,8 +1717,6 @@ def serialize_for_redis(self, obj): pass # do nothing because we don't have the message id yet else: fields[column.name] = value - current_app.logger.warning(f"FIELDS {fields}") - print(f"FIELDS {fields}", flush=True) return fields raise ValueError("Provided object is not a SQLAlchemy instance") diff --git a/notifications_utils/clients/redis/redis_client.py b/notifications_utils/clients/redis/redis_client.py index c41318243..d96f967a2 100644 --- a/notifications_utils/clients/redis/redis_client.py +++ b/notifications_utils/clients/redis/redis_client.py @@ -38,9 +38,8 @@ class RedisClient: active = False scripts = {} - @classmethod - def pipeline(cls): - return cls.redis_store.pipeline() + def pipeline(self): + return self.redis_store.pipeline() def init_app(self, app): self.active = app.config.get("REDIS_ENABLED") @@ -172,6 +171,10 @@ def llen(self, key): if self.active: return self.redis_store.llen(key) + def ltrim(self, key, start, end): + if self.active: + return self.redis_store.ltrim(key, start, end) + def delete(self, *keys, raise_exception=False): keys = [prepare_value(k) for k in keys] if self.active: