So the scheduler-runner does not depend on swh-indexer, swh-loader-*, ..
Details
Diff Detail
- Repository
- rDSCH Scheduling utilities
- Branch
- runner-no-task-registration
- Lint
No Linters Available - Unit
No Unit Test Coverage - Build Status
Buildable 3117 Build 3990: tox-on-jenkins Jenkins Build 3989: arc lint + arc unit
Event Timeline
Silently generating a random queue name that will never be read by any worker doesn't sound quite right :)
After talking with @douardda and looking at the current code, it seems that almost all tasks are being sent to distinct queues (with the exception of a few lister tasks, that are sharing the same queue, but without that being functionally important). Turns out that the duplication between backend_name and task_queue is never really used.
Our proposal:
- make the runner send all tasks to a queue named after the fully qualified task class name (identical to the backend_name). Adapt the router to do so as well (should be as easy as making it return {'queue': task}).
- make sure the worker subscribes to all the class name-based queues for the imported modules. Also allow it to subscribe to more queues if needed (which it is for the transition period).
- drop the now useless task_queue settings in all task classes.
- deploy workers with the implicit class name based queue subscription, also draining the old queues.
- deploy new runner sending messages to class name based queues
- drop the now useless task_queues settings in all worker deployment manifests
Build was aborted
Link to build: https://jenkins.softwareheritage.org/job/DSCH/job/tox/40/
See console output for more information: https://jenkins.softwareheritage.org/job/DSCH/job/tox/40/console
The idea was to make the workers pull from these queues as well.
Our proposal:
- make the runner send all tasks to a queue named after the fully qualified task class name (identical to the backend_name). Adapt the router to do so as well (should be as easy as making it return {'queue': task}).
- make sure the worker subscribes to all the class name-based queues for the imported modules. Also allow it to subscribe to more queues if needed (which it is for the transition period).
- drop the now useless task_queue settings in all task classes.
- deploy workers with the implicit class name based queue subscription, also draining the old queues.
- deploy new runner sending messages to class name based queues
- drop the now useless task_queues settings in all worker deployment manifests
Besides 3 and 6, that's also what I wanted to do; and I agree task_queue was not very useful, so I'm 100% in.
Build is green
See https://jenkins.softwareheritage.org/job/DSCH/job/tox/42/ for more details.