Description
As of now the integrity service seem to schedule the workflows (full and incremental) at a fixed rate. When a workflow have been running for a prolonged time (more than the scheduling interval of any workflow), there's stacked a lot of workflows up in the queue.
This is not a good behaviour.
The scheduler should never queue more than one of any given type of workflow for each collection. So if we have two types of workflow's A and B, the queue should never look like:
A, B, A, A, A, A....
But rather:
A, B
Further more, workflows that are scheduled at a fixed period, 1 day for instance. Should not start the period after it's last start, but rather one period after it last finished.
Also, when manually triggering a workflow, the schedule should be changed, so that if the workflow is set to run at a fixed period, the next run should be cancelled, and another scheduled at the first possible time. When the workflow is finished, a new run should be scheduled to run at one period later.