From 35bb6aad338a0e0582e34745d43b6dd5d5a408e2 Mon Sep 17 00:00:00 2001
From: "Antoine R. Dumont (@ardumont)" <ardumont@duck.com>
Date: Thu, 17 Oct 2024 15:52:13 +0200
Subject: [PATCH] scheduler: Use runner-first-visits

It was currently implemented as a cron-like service but a runner is better
suited.

This unifies with the way this will be deployed in production (and matches an
earlier discussion).

Refs. swh/devel/swh-scheduler#4687
---
 compose.yml                          |  9 ++++-----
 services/swh-scheduler/entrypoint.sh | 10 ----------
 tests/test_save_bulk.py              |  2 +-
 3 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/compose.yml b/compose.yml
index 47697ed..8a4bac0 100644
--- a/compose.yml
+++ b/compose.yml
@@ -223,7 +223,7 @@ services:
       - "./conf/scheduler.yml:/srv/softwareheritage/config.yml:ro"
       - "./services/swh-scheduler/entrypoint.sh:/srv/softwareheritage/entrypoint.sh:ro"
 
-  swh-scheduler-schedule-recurrent:
+  swh-scheduler-runner-first-visits:
     image: swh/stack
     build: ./
     env_file:
@@ -235,17 +235,16 @@ services:
       BROKER_URL: amqp://amqp/
       WORKER_INSTANCES: listers, loader
       APP: swh.scheduler.celery_backend.config.app
-    command: worker schedule-recurrent
+    command: worker start-runner-first-visits --period 10
     depends_on:
       - swh-scheduler
-      - swh-loader
       - amqp
       - prometheus-statsd-exporter
     volumes:
       - "./conf/scheduler.yml:/srv/softwareheritage/config.yml:ro"
       - "./services/swh-scheduler/entrypoint.sh:/srv/softwareheritage/entrypoint.sh:ro"
 
-  swh-scheduler-schedule-high-priority-first-visits:
+  swh-scheduler-schedule-recurrent:
     image: swh/stack
     build: ./
     env_file:
@@ -257,7 +256,7 @@ services:
       BROKER_URL: amqp://amqp/
       WORKER_INSTANCES: listers, loader
       APP: swh.scheduler.celery_backend.config.app
-    command: schedule-high-priority-first-visits
+    command: worker schedule-recurrent
     depends_on:
       - swh-scheduler
       - swh-loader
diff --git a/services/swh-scheduler/entrypoint.sh b/services/swh-scheduler/entrypoint.sh
index 9cf6b1b..0c210a3 100755
--- a/services/swh-scheduler/entrypoint.sh
+++ b/services/swh-scheduler/entrypoint.sh
@@ -71,14 +71,4 @@ case "$1" in
            journal-client
       ;;
 
-    "schedule-high-priority-first-visits")
-        wait_task_types
-        exec bash -c 'trap exit TERM INT; while :; do
-        (date &&
-         swh scheduler origin schedule-high-priority-first-visits)
-        sleep 60 &
-        wait ${!}
-        done'
-        ;;
-
 esac
diff --git a/tests/test_save_bulk.py b/tests/test_save_bulk.py
index e878c16..8618b26 100644
--- a/tests/test_save_bulk.py
+++ b/tests/test_save_bulk.py
@@ -31,7 +31,7 @@ def compose_services() -> List[str]:
         "swh-scheduler-journal-client",
         "swh-scheduler-runner",
         "swh-scheduler-listener",
-        "swh-scheduler-schedule-high-priority-first-visits",
+        "swh-scheduler-runner-first-visits",
         "swh-web",
         "swh-loader",
         "swh-lister",
-- 
GitLab