There are a number of changes here toward trying to unify and simplify the command scheduler. The eventual goal is to bring the in-memory and SQL-based command scheduler infrastructure to parity in terms of capabilities, and to run them through the same test suite. The test changes here are a tactical move in that direction.
It's worth merging at this stage because of a few bug fixes that emerged along the way, and a design change to split ICommandScheduler<T> into two interfaces:
public interface ICommandScheduler<out TTarget>
{
Task Schedule(IScheduledCommand<TTarget> scheduledCommand);
}
and
public interface ICommandDeliverer<out TTarget>
{
Task Deliver(IScheduledCommand<TTarget> scheduledCommand);
}
ICommandDeliverer<T> and some of the associated methods could use better names. Suggestions are welcome.
There are a number of changes here toward trying to unify and simplify the command scheduler. The eventual goal is to bring the in-memory and SQL-based command scheduler infrastructure to parity in terms of capabilities, and to run them through the same test suite. The test changes here are a tactical move in that direction.
It's worth merging at this stage because of a few bug fixes that emerged along the way, and a design change to split
ICommandScheduler<T>
into two interfaces:and
ICommandDeliverer<T>
and some of the associated methods could use better names. Suggestions are welcome.