Summary
When I enhanced the applied execution arbiter that supports the monitor worker threads to be more aware of the process being shut down, I noted an issue I had with some of the phrasing.
In comments, I mentioned how tracking the number of jobs in a given state had complications, and that the cure might be worse than the disease. It was absolutely more trouble than it was worth for the branch that I was working on at the time.
Since then, #84 has seen me take aim at trace log noise a bit, leading me to think that it would absolutely be worth it to adjust this. Marking a ToDo for later.
Main Objectives
Goals:
- Main goal is to have the idempotency monitor only stop waiting when there are specifically blocked jobs to be followed up on. The main benefit to this is to further reduce unnecessary log noise, even if it is trace-level.
- Once we actually are tracking the state:
- Consider having Inactive jobs tracked under the same system
- Remove the comment talking about how we couldn't possibly implement the tracking system that we just implemented.
Implementation Idea
- Update job repository to be aware of when the number of items that are blocked because the idempotency system has detected that they were running elsewhere.
- This could probably involve giving job repository entries a link back to their repository.
- Alternatively, the job repository could itself be a subscriber on the event of its entries. Would probably be more secure than adding a reporting method on the
IJobRepository interface.
- Ideally, this system would also maintain a watch on the inactive jobs tally, possibly replacing some of our current implementation for inactive jobs.
- Add to the job repository another subscribe callback that calls when the idempotency-blocked tally is updated.
- Duplicate the applied execution arbiter's delay to have specialized versions for the heartbeat monitor and the maintainer monitor.
Summary
When I enhanced the applied execution arbiter that supports the monitor worker threads to be more aware of the process being shut down, I noted an issue I had with some of the phrasing.
In comments, I mentioned how tracking the number of jobs in a given state had complications, and that the cure might be worse than the disease. It was absolutely more trouble than it was worth for the branch that I was working on at the time.
Since then, #84 has seen me take aim at trace log noise a bit, leading me to think that it would absolutely be worth it to adjust this. Marking a ToDo for later.
Main Objectives
Goals:
Implementation Idea
IJobRepositoryinterface.