From 7455b519c2ff6fbd74def2a40fd710697e4abd21 Mon Sep 17 00:00:00 2001 From: Tomas Kracmar Date: Sun, 5 Oct 2025 14:51:57 +0200 Subject: [PATCH] Tools update --- scripts/podx-tools.sh | 94 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/scripts/podx-tools.sh b/scripts/podx-tools.sh index 7691844..fdb9c7e 100755 --- a/scripts/podx-tools.sh +++ b/scripts/podx-tools.sh @@ -354,6 +354,9 @@ Transcription control: RQ helpers: rq-info # show RQ queue summary via worker container rq-transcribe-requeue # requeue all failed 'transcribe' jobs back to active + rq-clear-transcribe # purge 'transcribe' queue and clean its registries (failed/started/scheduled/etc.) + rq-clear-default # purge 'default' queue and clean its registries + rq-clear-all # purge both 'default' and 'transcribe' queues and registries Queues (Redis): queues-workers-list # show worker queue sizes (LLEN) and related keys @@ -876,6 +879,97 @@ PY fi ;; + rq-clear-transcribe) + : "${REDIS_URL:=redis://redis:6379/0}" + if command -v docker >/dev/null 2>&1 && command -v docker compose >/dev/null 2>&1; then + docker compose exec -T podx-worker-transcribe python - <<'PY' +import sys +from redis import Redis +from rq import Queue +from rq.registry import FailedJobRegistry, StartedJobRegistry, DeferredJobRegistry, FinishedJobRegistry, ScheduledJobRegistry +url = sys.argv[1] if len(sys.argv)>1 else 'redis://redis:6379/0' +conn = Redis.from_url(url) +def clear(name): + q = Queue(name, connection=conn) + regs = [FailedJobRegistry(q), StartedJobRegistry(q), DeferredJobRegistry(q), FinishedJobRegistry(q), ScheduledJobRegistry(q)] + for reg in regs: + try: + for jid in reg.get_job_ids(): + try: reg.remove(jid, delete_job=True) + except Exception: pass + except Exception: pass + try: q.empty() + except Exception: pass + print(f"[rq] cleared queue '{name}' and registries.") +clear('transcribe') +PY + "$REDIS_URL" + else + echo "docker compose not found; cannot run rq inside container." >&2; exit 1 + fi + ;; + + rq-clear-default) + : "${REDIS_URL:=redis://redis:6379/0}" + if command -v docker >/dev/null 2>&1 && command -v docker compose >/dev/null 2>&1; then + docker compose exec -T podx-worker python - <<'PY' +import sys +from redis import Redis +from rq import Queue +from rq.registry import FailedJobRegistry, StartedJobRegistry, DeferredJobRegistry, FinishedJobRegistry, ScheduledJobRegistry +url = sys.argv[1] if len(sys.argv)>1 else 'redis://redis:6379/0' +conn = Redis.from_url(url) +def clear(name): + q = Queue(name, connection=conn) + regs = [FailedJobRegistry(q), StartedJobRegistry(q), DeferredJobRegistry(q), FinishedJobRegistry(q), ScheduledJobRegistry(q)] + for reg in regs: + try: + for jid in reg.get_job_ids(): + try: reg.remove(jid, delete_job=True) + except Exception: pass + except Exception: pass + try: q.empty() + except Exception: pass + print(f"[rq] cleared queue '{name}' and registries.") +clear('default') +PY + "$REDIS_URL" + else + echo "docker compose not found; cannot run rq inside container." >&2; exit 1 + fi + ;; + + rq-clear-all) + : "${REDIS_URL:=redis://redis:6379/0}" + if command -v docker >/dev/null 2>&1 && command -v docker compose >/dev/null 2>&1; then + docker compose exec -T podx-worker-transcribe python - <<'PY' +import sys +from redis import Redis +from rq import Queue +from rq.registry import FailedJobRegistry, StartedJobRegistry, DeferredJobRegistry, FinishedJobRegistry, ScheduledJobRegistry +url = sys.argv[1] if len(sys.argv)>1 else 'redis://redis:6379/0' +conn = Redis.from_url(url) +def clear(name): + q = Queue(name, connection=conn) + regs = [FailedJobRegistry(q), StartedJobRegistry(q), DeferredJobRegistry(q), FinishedJobRegistry(q), ScheduledJobRegistry(q)] + for reg in regs: + try: + for jid in reg.get_job_ids(): + try: reg.remove(jid, delete_job=True) + except Exception: pass + except Exception: pass + try: q.empty() + except Exception: pass + print(f"[rq] cleared queue '{name}' and registries.") +for name in ('default','transcribe'): + clear(name) +PY + "$REDIS_URL" + else + echo "docker compose not found; cannot run rq inside container." >&2; exit 1 + fi + ;; + *) echo "Unknown command: $cmd" >&2 _help