Refactor worker implementations around a CRUD interface #14
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.
This should be enough to cover what's needed for #6.
I defined a CRUD behaviour on all workers, and then pulled everything out which could be. The advantage is that TTL is checked in a single place only (bar
take/3
inlocal.ex
). It also cuts down on a fair amount of duplication.I also snuck in a
:hook_result
option to all Worker functions which will override any results sent to the hook. I can't imagine this will be used often, but it was needed to fix #10.This PR will also catch #10 and make it far easier to implement #11.