Create a Timer object that will wake up the Scheduler at specific times #155
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.
The intention is to allow a Scheduler to store the times of future scheduled tasks and trigger a wake at those times.
My goal is to allow polling to be significantly dialed back (~1 minute), if not done away with entirely and allow the
:async
execution mode to be non-noisily set as the default in the Rails development environment. (#139 and #90)Current concerns:
Concurent::ThreadPoolExecutor
. TheTimer
object has its own threadpool to executeConcurrent::ScheduledTasks
that then wake up theGoodJob::Scheduler
to fetch and perform the actual job. TheGoodJob::Timer
is currently entangled with both theScheduler
and thePerformer
because the Timer needs to refresh its queue of future tasks. I'm struggling with whether theTimer
is an implementation detail of theScheduler
, or whether it can be non-complexly extracted like the Poller in Extract Scheduler polling behavior to its own object #152.