inveniosoftware / product-rdm

InvenioRDM Product Roadmap
10 stars 0 forks source link

Job system (aka celery beat schedule in database) #186

Closed lnielsen closed 1 week ago

lnielsen commented 2 months ago

The goal of this task is to build a administration interface the provides an overview over jobs running in the system, be able to see the output/results and start/stop/schedule new jobs.

Examples of jobs could be:

The difference from Flower monitoring of celery is that it shows all individual tasks and it's very hard to find a given task and its output and have no proper persistence.

Resources

CERN as allocated time to work on this during May.

UI

Job overview

Screenshot 2024-04-12 at 13 21 49

Job detail

Screenshot 2024-04-12 at 13 22 10

Job detail logs (out of scope)

Eventually it woudl be nice to be able to get a full logging output from a job to inspect in detail what happened:

Screenshot 2024-04-12 at 13 22 00

Design

Overall, the goal is to move the celery beat schedule into the database so it can be managed from there. To provide a small wrapping layer around a celery task which takes care of the output logging etc from the task.

lnielsen commented 1 week ago

The MVP of the job system was implemented:

Image

Image

Right now the implementation is still missing the UI to edit jobs, and see detailed logs.