distributed at least 10 patches apart. I did this
observer> show [(list xcor ycor)] of all-of-kind "Job"
observer: [[-12 14] [0 0] [-19 -3] [-10 37] [-2 -49] [-2 16] [-23 15] [-23 -46] [-12 -15] [-21 -22]]
observer> ask all-of-kind "Job" [set size 10]
to confirm it. No jobs touch each other so they must be at least 10 patches apart.
The use of when and whenever is fine. 'whenever' runs at every scheduled time. If you aren't using fractional ticks then it runs every tick. If you are using fractional ticks and it OK to run the action of the 'whenever' at any time during a tick (rather than at an exact fractional time within that tick) then do-every combined with 'if' will be faster code. But you never need to have 'do-every' call 'when' or 'whenever'.
Best,
-ken