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 :
|
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 workflowL'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 CLIDans 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