Go to main content

Guía de administración de Oracle® ZFS Storage Appliance, versión OS8.8.x

Salir de la Vista de impresión

Actualización: Agosto de 2021
 
 

Codificación de programas de flujo de trabajo

Como alternativa a la definición de programas mediante la interfaz CLI como se describe en Uso de flujo de trabajo programado, es posible definir programas en el código del flujo de trabajo como una propiedad en el flujo de trabajo Objeto. Las propiedades que se utilizan en los flujos de trabajo Objeto son diferentes a las que se utilizan en la creación de un programa en la CLI.

En los flujos de trabajo Objeto, se utilizan las siguientes propiedades:

Tabla 163  Propiedades de programas de flujo de trabajo
Propiedad
Tipo
Descripción
offset
Número
Determina el punto inicial del período definido.
period
Número
Define la frecuencia del programa.
unit
Cadena
Especifica si se utilizan segundos o meses como unidad en la definición del período y el desplazamiento.

Un administrador con las autorizaciones apropiadas para el flujo de trabajo puede cambiar los programas codificados en el flujo de trabajo como se muestra en Uso de flujo de trabajo programado.

Ejemplo 22  Uso de las propiedades de flujo de trabajo

El siguiente código ejemplifica el uso de las propiedades. Tenga en cuenta que la aritmética en línea facilita la legibilidad de las definiciones del período y el desplazamiento.

// 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');
               }
}

Las unidades de las propiedades en el objeto MySchedules especifican el tipo de unidades que se utilizan para las propiedades offset y period. Se pueden establecer en seconds o month. La propiedad period especifica la frecuencia del evento y offset especifica las unidades dentro del período. En el ejemplo anterior, el período del segundo programa se definió en una semana, a partir del segundo día, a las 4:30 a. m. Es posible definir varios programas en la propiedad Schedules.

El objeto MySchedules del ejemplo usa las siguientes tres propiedades:

  • offset es el desplazamiento inicial desde el 1 de enero de 1970 para el programa. El desplazamiento se expresa en las unidades definidas por la propiedad units.

  • period es el período entre repeticiones del programa, que también se expresa en las unidades definidas por la propiedad units.

  • units se puede definir en seconds o months.

El punto inicial para los programas semanales es el jueves. Esto se debe a que el inicio del período es el 1 de enero de 1970, que fue jueves.

Ejemplo 23  Programa de flujo de trabajo que se muestra en la CLI

En el ejemplo anterior, en el período del segundo programa se usa un desplazamiento inicial de 2 días + 4 horas + 30 minutos. Como resultado, la fecha inicial es el 3 de enero de 1970 a las 4:30 a. m. El programa se repite indefinidamente el sábado de cada semana a las 4:30 a. m. A continuación, se puede ver el programa como se muestra en la CLI.

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