Go to main content

Guide d'administration d'Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

Codage des calendriers de workflow

Plutôt que de définir des calendriers à l'aide de l'interface CLI, comme indiqué dans la section Utilisation d'un workflow programmé, vous pouvez définir des calendriers dans le code du workflow en tant que propriété du workflow d'objets. Les propriétés utilisées dans les workflows d'objets sont différentes de celles utilisées pour la création du calendrier via la CLI.

Les propriétés suivantes sont utilisées dans les workflows d'objets :

Table 163  Propriétés des calendriers de workflow
Propriété
Type
Description
offset
Number
Détermine le point de départ au cours de la période définie.
period
Number
Définit la fréquence du calendrier.
unit
String
Indique si l'unité utilisée dans la définition d'offset et de period est secondes ou mois

Les calendriers qui sont codés dans le workflow peuvent être modifiés par un administrateur disposant des autorisations appropriées sur le workflow, comme indiqué dans la section Utilisation d'un workflow programmé.

Exemple 22  Utilisation des propriétés de workflow

L'exemple de code suivant illustre l'utilisation des propriétés. Notez que l'arithmétique en ligne contribue à rendre plus lisibles les déclarations offset et period.

// Example of using Schedule definitions within a workflow 
var MyTextObject = {
    MyVersion:  '1.0',
    MyName:     'Example 9',
    MyDescription:  'Example of use of Timer',
    Origin:     'Oracle'
};

var MySchedules = [
    // half hr interval
    { offset: 0, period: 1800, units: "seconds" },
    // offset 2 days, 4hr, 30min , week interval
    {offset: 2*24*60*60+4*60*60+30*60, period: 604800,units: "seconds" }
];

var workflow = {
    name:       MyTextObject.MyName,
    description:    MyTextObject.MyDescription,
    version:    MyTextObject.MyVersion,
    alert:      false,
    setid:      true,
    schedules:  MySchedules,
    scheduled:  true,
    origin:     MyTextObject.Origin,
    execute:    function () {
                audit('workflow started for timer');
               }
}

La propriété units dans l'objet MySchedules spécifie le type d'unité utilisé pour les propriétés offset et period. Elles peuvent être définies sur seconds (secondes) ou sur month (mois). La propriété period indique la fréquence de l'événement et la propriété offset indique les unités au cours de la période. Dans l'exemple qui précède, la période du deuxième calendrier est définie sur une semaine et commence le second jour, à 4 h 30. Plusieurs calendriers peuvent être définis dans la propriété schedules.

L'objet MySchedules utilise dans cet exemple les trois propriétés suivantes :

  • offset - Point de départ du calendrier, le premier janvier 1970. Le point de départ est donné dans l'unité définie dans la propriété units.

  • period - Période du calendrier située entre deux répétitions, également donnée dans l'unité définie dans la propriété units.

  • units - Peut être défini en secondes (seconds) ou en mois (months).

Les calendriers hebdomadaires débutent le jeudi. Cela est dû au fait que l'époque est définie comme débutant le premier janvier 1970, un jeudi.

Exemple 23  Calendrier de workflow tel qu'affiché dans la CLI

Dans l'exemple ci-dessus, la période du deuxième calendrier a pour point de départ 2 jours, 4 heures et 30 minutes. Ainsi, il aura pour point de départ le 3 janvier 1970 à 4 h 30. Ce calendrier se reproduit indéfiniment tous les samedis à 4 h 30. La disposition du calendrier de la CLI est représentée ci-dessous.

hostname:> maintenance workflows
hostname:maintenance workflows> list
WORKFLOW     NAME                           OWNER SETID ORIGIN        VERSION
workflow-018 Check metaslab_unload_delay    root  false Oracle ZFSSA  1.0
workflow-019 Check metaslab_unload_timeout  root  false Oracle ZFSSA  1.0
workflow-020 Example 9                      root  true  <local>       1.0
workflow-021 Set DNLC size and ncsize       root  false Data and App  2.0
workflow-022 Stop Existing SSH Sessions     root  false <local>       0.2
hostname: maintenance workflows> select name="Example 9"
hostname: maintenance workflow-020> schedules
hostname: maintenance workflow-020 schedules> ls
Schedules:
NAME                 FREQUENCY            DAY                  HH:MM
schedule-000         halfhour             -                    --:00
schedule-001         week                 Saturday             04:30