Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DM-44606: Convert to arq #163

Merged
merged 6 commits into from
Jun 6, 2024
Merged

DM-44606: Convert to arq #163

merged 6 commits into from
Jun 6, 2024

Conversation

rra
Copy link
Member

@rra rra commented Jun 5, 2024

Switch the task queuing system from Dramatiq to arq. Restructure the way workers are set up and executed to match the way that arq thinks of the world instead of the way that Dramatiq thinks of the world. This allows task queuing to be async, allowing it to not block the event loop.

Add new functions, build_worker and build_uws_worker, that construct the arq worker configuration for the main worker and the UWS database helper workers.

Add support for gs URLs so that the image cutout backend can use workload identity when running on Google Cloud.

@rra rra force-pushed the tickets/DM-44606 branch 9 times, most recently from 2f169dc to d643e63 Compare June 6, 2024 16:59
rra added 4 commits June 6, 2024 10:34
Switch the task queuing system from Dramatiq to arq. Restructure
the way workers are set up and executed to match the way that arq
thinks of the world instead of the way that Dramatiq thinks of the
world.

This allows task queuing to be async, allowing it to not block the
event loop.

Add new functions, build_worker and build_uws_worker, that construct
the arq worker configuration for the main worker and the UWS database
helper workers.
Support gs:// URLs in addition to s3:// URLs with the cutout backend.
The hope is that this will add support for workload identity. This
support requires installing some more libraries into the worker
Docker image.
Exceptions need a bit of special handling to ensure that they can
be pickled properly. Also add a bit more logging in the database
worker.
Several tests have to manually push queued jobs through their
lifecycle in the mock arq queue. Add a helper class that wraps the
data structures required to do this and provides a simple interface.
This can eventually move into Safir when we move the rest of the
support code there.
Document the changes due to the arq conversion and its corresponding
Phalanx chart changes. Add a pointer to the change log to README.md.
Until there is a new release of Safir with the accumulated fixes
required by the backend (or the arq support has been split into a
separate package), install the main branch of Safir into the cutout
worker Docker image.
@rra rra merged commit 6c4e23c into main Jun 6, 2024
3 checks passed
@rra rra deleted the tickets/DM-44606 branch June 6, 2024 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant