Right now, we schedule and run text extraction and (if auto-enabled) transactions in GitHub Actions, and spawn one-off Heroku dynos to re-run translations as extracted content is edited and/or approved.
With requests for more frequent translations (#50) and additional logic for event-driven re-translations (#23), and even centralizing translation creation logic (#45), let's step back and look at extraction/translation task management more holistically, so we can get ahead of and manage complexity.
@antidipyramid suggests considering a task queue. Django 6 includes an API for defining tasks, and we've used Celery as a task queue on other projects, though there are other options we could consider.
This issue will serve as the container for this effort. Subsequent tasks will be created as sub-issues and closed as completed. This issue should remain open until a task queue has been created or this effort is abandoned.
Right now, we schedule and run text extraction and (if auto-enabled) transactions in GitHub Actions, and spawn one-off Heroku dynos to re-run translations as extracted content is edited and/or approved.
With requests for more frequent translations (#50) and additional logic for event-driven re-translations (#23), and even centralizing translation creation logic (#45), let's step back and look at extraction/translation task management more holistically, so we can get ahead of and manage complexity.
@antidipyramid suggests considering a task queue. Django 6 includes an API for defining tasks, and we've used Celery as a task queue on other projects, though there are other options we could consider.
This issue will serve as the container for this effort. Subsequent tasks will be created as sub-issues and closed as completed. This issue should remain open until a task queue has been created or this effort is abandoned.