The agent postinstall configures a system's scheduler job at a 1 minute period executing the nodemgr schedulers command. This action runs the OpenSVC agent scheduler for the node and each service.

For each task, the scheduler determines if the current time meets the task's schedule definition constraints. If all constraints are met, the task action is run in a subprocess and the last run timestamp is updated.

The schedule definition constraints are expressed as allowed timeranges and minimum period. Example: In 00:00-02:00@121, the timerange is from midnight to 2am, the period is 121 minutes. Multiple <timerange>@<period> can be defined with the syntax ["00:00-02:00@121","12:00-14:00@121"]

If an allowed timerange is longer than the system's schedule period, multiple consecutive scheduler run will meet the schedule timerange constraint. If the period is also met (the task has not run in the last <period> minutes), the scheduler rolls a dice and decides if the task is run now, or delayed to a next scheduler run. The probability of deciding to run augments linearly with the current time position in the timerange. For example, with a 00:00-02:00 timerange, at midnight the probability is around 10%. At 01:50 the probabilty is 100%.

This behaviour spreads the tasks execution on all nodes over the whole timerange length. As most tasks, induce communications with the collector, the collector load is leveled.

Any task (except sync tasks) execution in its subprocess is delayed by a random few seconds to level collector load spikes caused by time-synchronized nodes actions being validated at the same time. For example, on a 1000 agent population with pushasset schedule set to 00:00-02:00@121, ~90 agents will execute the action at 00:00. The random delay ensures the collector won't receive all 90 data payloads at the same second.