Improve 'updateLocations' Task for Database Efficiency #1096
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.
Modified the 'updateLocations' task to enhance database efficiency. The recurring task now uses a transaction per iteration instead of one for the entire task, eliminating manual commits. Cache removals are also now done with each transaction, avoiding extra database lookups.
The main point here is to reduce contention. I don't expect much change to the overall speed of the scheduled task. Validation is to check the 'finished run' time (ofc check for exceptions as well):
docker logs maproulette-api | grep "Task 'Updating locations': Finished run"
journalctl -u docker --since "today" CONTAINER_NAME=maproulette-api | grep "Task 'Updating locations': Finished run"
Metrics Before change: