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.