This repository has been archived by the owner on Oct 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Background tasks #44
Merged
javierdelapuente
merged 12 commits into
main
from
ISD-2349-Implement-background-tasks-in-12-factor-apps
Sep 24, 2024
Merged
Background tasks #44
javierdelapuente
merged 12 commits into
main
from
ISD-2349-Implement-background-tasks-in-12-factor-apps
Sep 24, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Test coverage for 3789a9e
Static code analysis report
|
jdkandersson
approved these changes
Sep 24, 2024
amandahla
reviewed
Sep 24, 2024
amandahla
approved these changes
Sep 24, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
javierdelapuente
deleted the
ISD-2349-Implement-background-tasks-in-12-factor-apps
branch
September 24, 2024 15:24
6 tasks
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Applicable spec:
ISD181 - Background tasks in 12 factor apps
Overview
This PR implement background services in 12 factor apps, using the
paas-app-charmer
library.Services defined in
rockcraft.yaml
with their name ending in-worker
will be injected the same environment variables as the main service and will these background services will run in all units.Services defined in
rockcraft.yaml
with their name ending in-scheduler
will be injected the same environment variables as the main service, but will only run in the unit ending in name 0. This pod will always exists if there at least one unit (juju does not set .spec.ordinals.start, see here for reference.The integration test for the PR is complex, as it uses Celery beat and Celery workers. The Celery beat will send tasks to the workers, with an argument that is the Celery beat hostname. The Celery workers will put in a Redis set the hostname of the beat scheduler (received as an argument) and its own hostname in another set. Checking the sets we can see how many schedulers and worker services are working in all the units in the application.
As a simpler alternative, it could be possible to directly check which services are started in each unit and if they contain environment variables.
Documentation will be handled in different PRs/posts.
Rationale
Juju Events Changes
Module Changes
Library Changes
Checklist
src-docs
urgent
,trivial
,complex
)