NAME
P2::Scheduler - This module helps organizing monthly tests at component level.
SYNOPSIS
use P2::Scheduler;
my $scheduler = P2::Scheduler->new(
resources => [][], # resources ordered by priority (mandatory)
context => ..., # the K8s context
label => ..., # a fixed label to be added to each resource name to compose the experiment name
action => ..., # a description of what is happening to the resource, it will appear as title
weight => [3,2,1], # the weight of each priority, basically how many tests to run for a
# given priority (defaults to [3,2,1])
hour_slots => [1,2,3,4,5], # hours of the day at which tests can run (mandatory)
spare_days_per_month => 2, # number of business days to leave as spare at the end of the month
starting_from => 6, # index of the day of the month to start from (defaults to 1)
year => ... # mandatory
num_week_days => 3 # number of business days to count starting from Monday, defaults to 5
pri_per_month' => [3,3,3,3,3,3,3,3,3,3,3,3] # an array for the minimum priority to take into consideration when scheduling
# experiments for each month. Default to all
# priorities for all months. This is meant to be
# used in case we want to limit priority 2/3
# experiments only to specific months.
selected_week_days => [3,4], # list of business days ids to consider:
# 1 => Monday,..., 5 => Friday
# for example the string '2,3,4' would set tests to run only
# between Tuesdays and Thursdays
fixed_intervals => 1 # if experiments times should be strictly scheduled in
# fixed intervals or randomly allocated
);
# getting the schedule for January...
my @schedule = $scheduler->month_schedule(1);
# or for the whole year...
my @schedule = $scheduler->year_schedule();
AUTHOR
Marco Masetti, <marco.masetti at sky.uk>
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc P2::Scheduler
LICENSE AND COPYRIGHT
Copyright 2020 Marco Masetti.
This program is free software; you can redistribute it and/or modify it under the terms of the the BSD 3-Clause License.