Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

On This Page

Table of Contents

Overview

A job schedule allows you to control when the job runs. The schedule manages the job runs for you so you don't have to manually execute job runs. The schedule can be set to determine both how often a job runs and when a job should stop running (also called the job stop policy). You also have the option of editing schedules for jobs, too. When defining the mode of your job, you have the following options.

Mode

Description

Code

ad-hoc

The job will not run until manually triggered. The job status will be "completed" when the job finishes the run.

"schedule": {

    "mode": "ad-hoc"

  }

auto

The job will be added to the job queue and run when a there is an available spot. The job will then run every 15 minutes after the initial run. 

"schedule": {

    "mode": "auto"

  }

manual

The job will not run until manually triggered.

"schedule": {

    "mode": "manual"

  }

Additional Auto Scheduling Options

For auto, you can add additional scheduling options to define the job schedule. The table lists the options individually and identifies each option's code formatting. However, options can be used in combination. See the Examples sections for code samples using multiple schedule options. 

Option

Description

Values

Code

days

Sets the day(s) the job should run.
The default value is "everyday."

"everyday" "weekdays""weekends""monday"
"tuesday"
"wednesday"
"thursday""friday"
"saturday""sunday" 

 "days": "weekends",

start_date

Sets the date to start running the job.
Date values must be in Unix/Epoch timestamp format. 
For example, August 21, 2019 = 1566360000

"start_date": "1523025357",

end_date

Sets the day to stop running the job. 
Date values must be in Unix/Epoch timestamp format. 
For example, August 21, 2019 = 1566360000

"end": "1567123200",

repeat_count

Sets the maximum number of times the job runs in one day. 


This option cannot be used with run_at.

 "repeat_count": 0,

repeat_interval

Sets the time interval, from the last start time, from which to start the next run of the job.
This option is set in milliseconds (ms).
900000 is the default value (15 minutes).


This option cannot be used with run_at.

"repeat_interval": {

    "value": 900000,

    "unit": "ms"

start_window

Sets the time of day to start the job execution. 
Hour values must be 24 HR format.
For example, 4:00 PM = 16:00


This option cannot be used with run_at.

"hr"
"min"
"sec""ms"

"start_window": {

        "hr": 8,

        "min": 0,

        "sec": 0,

        "ms": 0

end_window

Sets the time of day the last job execution should run. 
This option is used in combination with the start_window when you want the job to run withing a set time frame.
Hour values must be 24 HR format.
For example, 4:00 PM = 16:00

This option cannot be used with run_at.

Note that a scheduled job will not run if the last run time for the job equals the “end_window” set in the job schedule. For example, if you schedule a job to run every 15 minutes starting at 1:00 PM and ending at 1:30 PM, the job will run at 1:00 PM and then at the scheduled 15-minute increment. If the next run time calculated for the job is 1:30 PM (the same as the “end_window” set for the job), the job will not be run again at 1:30 PM.

"hr"
"min"
"sec""ms"

"end_window": {

        "hr": 21,

        "min": 0,

        "ms": 0,

        "sec": 0

max_execution

Sets the maximum amount of time the job can run. Once the job hits this maximum, it stops. 
This option uses a unit and value. 

Acceptable units are: 

"d""h""m""ms""ns""s""us"

"max_execution": {

        "unit": "d",

        "value": 1

run_at

Sets the time of day to start the job execution. 


This option cannot be used with repeat_intervalstart_windowend_windowmax_execution.

"hr"
"min"
"sec""ms"

"run_at": {

        "hr": 8,

        "min": 0,

        "sec": 0,

        "ms": 0

Examples

The examples below show how to use the various "auto" options in combination. 

Example 1: Defined Days with Start and End Windows

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
    "mode": "auto",
    "days": "weekends",
    "end_date": "1523025357",
    "start_window": {
        "hr": 8,
        "min": 0,
        "sec": 0,
        "ms": 0
    },
    "end_window": {
        "hr": 20,
        "min": 0,
        "sec": 0,
        "ms": 0
    }
  }

Example 2: Max Executions

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
    "mode": "auto",
    "max_execution": {
        "unit": "d",
        "value": 1
    }
  }

Example 3: Run at a Specific Time

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
    "mode": "auto",
    "days": "monday",
    "run_at": {
        "hr": 8,
        "min": 0,
        "sec": 0,
        "ms": 0
    }
  }

Example 4: Run on a Specific Date at a Specific Time

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
    "mode": "auto",
    "start_date": "1523025357",
    "start_window": {
        "hr": 8,
        "min": 0,
        "sec": 0,
        "ms": 0
    }
  }

Example 5: Run Every 15 Minutes Indefinitely

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
  "mode": "auto",
  "repeat_interval": {
    "value": 900000,
    "unit": "ms"
  }
}

Example 6: Run Every 5 Minutes Indefinitely

The following example shows a schedule that uses the following options:

...

Code Block
"schedule": {
  "mode": "auto",
  "repeat_interval": {
    "value": 300000,
    "unit": "ms"
  }
}

Example 7: Run Hourly Everyday Within a Time Frame

The following example shows a schedule that uses the following options:

...

Code Block
 },
  "schedule": {
    "mode": "auto",
    "days": "everyday",
    "repeat_interval": {
        "value": 3600000,
        "unit": "ms"
    },
    "start_window": {
        "hr": 6,
        "min": 0,
        "ms": 0,
        "sec": 0
    },
    "end_window": {
        "hr": 21,
        "min": 0,
        "ms": 0,
        "sec": 0
    }
  }
}

Example 8: Run Everyday, Every Hour, Within a Specified Time Frame for a Given Date Range

The following example shows a schedule that uses the following options:

...

Code Block
 },
  "schedule": {
    "mode": "auto",
    "days": "everyday",
    "repeat_interval": {
        "value": 3600000,
        "unit": "ms"
    },
    "start_date": "1566345600",
    "start_window": {
        "hr": 6,
        "min": 0,
        "ms": 0,
        "sec": 0
    },
    "end_date": "1597968000",
    "end_window": {
        "hr": 21,
        "min": 0,
        "ms": 0,
        "sec": 0
    }
  }
}

Example 9: Full Job Creation Block

This example includes the entire job creation JSON block and all the schedule options.

Code Block
{
  "name":"Simple Scheduled Job",
  "kind": "transfer",
  "transfer": {
      "audit_level": "trace",
      "transfer_type": "copy",
      "source": {
        "connection": { "id": "{{nfs_connection}}" }
        ,
        "target":
        {"path":"/sourceFolder"}
      },
      "destination": {
        "connection": { "id": "{{cloud_connection}}" },
        "target": {
          "path": "/destinationFolder"
        }
      }
  },
  "schedule": {
    "mode": "auto",
    "days": "everyday",
    "repeat_count": 0,
    "repeat_interval": {
        "value": 900000,
        "unit": "ms"
    },
    "end_date": "1523025357",
    "end_window": {
        "hr": 0,
        "min": 0,
        "ms": 0,
        "sec": 0
    },
    "max_execution": {
        "unit": "d",
        "value": 0
    },
    "run_at": {
        "hr": 0,
        "min": 0,
        "ms": 0,
        "sec": 0
    },
    "start_date": "1523025357",
    "start_window": {
        "hr": 0,
        "min": 0,
        "ms": 0,
        "sec": 0
    }

Convention Job Schedules

The default schedule for a convention job is set to run every 6 hours so it can review the source for any new content. You can edit this schedule as needed using any schedule option preferred. When setting the schedule for convention jobs, you set the schedule for the convention job (parent job) and child jobs separately. This allows the child jobs to run on a different schedule than the convention job. You will use the schedule in the transfer block to set the schedule for child jobs and use the schedule outside of the transfer block to set the schedule for the convention job itself. 

...

Code Block
{
    "name": "Convention job name",
    "kind": "personal_drive",
    "transfer": {
        "transfer_type": "copy",
        "source": {
            "connection": {
                "id": "{{cloud_connection_source}}"
            }
        },
        "destination": {
            "connection": {
                "id": "{{cloud_connection_destination}}"
            }
        },
        "schedule": {
            "mode": "auto"
        }
    },
    "schedule": {
        "mode": "manual"
    },
    "convention": {
        "match": "account",
        "map_by": {
            "email": true
        },
        "users": "source",
        "remove_invalid": true,
        "unmapped_policy": "warn",
        "type": "personal_drive"
    }
}

Clearing Job Settings

Any schedule field can cleared by setting the value to "null" in a call. For fields that have a default value other than "null," clearing the value sets the field back to the default value.

...

Code Block
"schedule": {
    "mode": "auto",
    "days": "null",
    "run_at": {
        "hr": 8,
        "min": 0,
        "sec": 0,
        "ms": 0
    }
  }

Scheduling Multiple Jobs | Job Queue

Jobs will run at their next scheduled time assuming there is an available thread.

...