Job Dependency
You can set a job that meets the scheduling period conditions as the dependency jobs for a job that is scheduled periodically. For details about how to set a dependency job, see Setting Up Scheduling for a Job Using the Batch Processing Mode.
- The specified period is calculated as follows (see How a Job Runs After a Dependency Job Is Set for It for details):
- Same-cycle dependency: If the scheduling periods of the two jobs are accurate to the same level (for example, minute, hour, or day), the specified period is (Execution time of job A – Recurrence of job A, Execution time of job A].
- Cross-cycle dependency: If the scheduling periods of the two jobs are accurate to different levels, the specified period is [Natural start time of the previous recurrence of job A, Natural start time of the current recurrence of job A).
- Parameter Policy for Current job If Dependency job Fails determines whether job A will check the status of job B's instances.
- If this parameter is set to Suspend or Terminate, job A will be suspended or terminated if instances of job B fail during a specified time period.
- If this parameter is set to Continue, job A will be executed only if all the instances of job B are executed (regardless of whether the execution is successful or not).
This section describes how to set the conditions of a dependency job and how a job runs after a dependency job is set for it.
Setting Conditions of a Dependency Job
- The recurrence of job A cannot be shorter than that of job B. For example, if both job A and job B are scheduled by minute or hour and the interval of job A is shorter than that of job B, then job B cannot be set as the dependency job of job A. If job A is scheduled by minute and job B is scheduled by hour, job B cannot be set as the dependency job of job A.
- The recurrence of neither job A nor job B can be week. For example, if the recurrence of job A or job B is week, job B cannot be set as the dependency job of job A.
- A job whose recurrence is month can depend only on a job whose recurrence is day. For example, if the recurrence of job A is month, job B can be set as the dependency job of job A only if job B's recurrence is day.
How a Job Runs After a Dependency Job Is Set for It
- Same-cycle dependency: Job A and its dependency job B have the same recurrence, for example, minute, hour, or day.
After job B is set as the dependency job of job A, job A checks whether instances of job B are running within a specified time range (Execution time of job A – Recurrence of job A, Execution time of job A). Job A will be executed only if all the instances of job B are executed.
Example 1: Job A depends on job B and they are both scheduled by minute. Job A starts at 10:00 and the interval is 20 minutes. Job B starts at 10:00 and the interval is 10 minutes. The following table lists how the two jobs run.Table 1 Example 1: dependency between jobs with the same recurrence Time Point
Job B (Starting at 10:00 and Scheduled Every 10 Minutes)
Job A (Starting at 10:00 and Scheduled Every 20 Minutes)
10:00
Executed
Executed after job B's instances are executed in the (09:40, 10:00] time period
10:10
Executed
-
10:20
Executed
Executed after job B's instances are executed in the (10:00, 10:20] time period
10:30
Executed
-
...
...
...
Example 2: Job A depends on job B and they are both scheduled by day. Job A starts at 09:00 on August 1, and job B starts at 10:00 on August 1. The following table lists how the two jobs run.Table 2 Example 2: dependency between jobs with the same recurrence Time Point
Job B (Starting at 10:00 on August 1 and Scheduled by Day)
Job A (Starting at 09:00 on August 1 and Scheduled by Day)
09:00 on August 1
-
Not executed if no instance of job B is running in the (09:00 on July 31, 09:00 on August 1] time period
10:00 on August 1
Executed
-
09:00 on August 2
-
Executed after job B's instances are executed in the (09:00 on August 1, 09:00 on August 2] time period
10:00 on August 2
Executed
-
...
...
...
- Cross-cycle dependency: Job A and its dependency job B have different recurrences.
After job B is set as the dependent job of job A, job A checks whether any instance of job B is running in the time range (Natural start time of the previous recurrence of job A, Natural start time of the current recurrence of job A). Job A will be executed only after all the instances of job B are executed.
The natural start time of a recurrence is defined as follows:- If the recurrence is hour, the natural start time of the previous recurrence is 00:00 of the previous hour, and the natural start time of the current recurrence is 00:00 of the current hour.
- If the recurrence is day, the natural start time of the previous recurrence is 00:00:00 of the previous day, and the natural start time of the current recurrence is 00:00:00 of the current day.
- If the recurrence is month, the natural start time of the previous recurrence is 00:00:00 on 1st of the previous month, and the natural start time of the current recurrence is 00:00:00 on 1st of the current month.
Example 3: Job A depends on job B. Job A is scheduled by day, and job B is scheduled by hour. Job A is executed at 02:00 every day. Job B starts at 00:00 and is executed at an interval of 10 hours. The following table lists how the two jobs run.Table 3 Example 3: dependency between jobs with different recurrences Time Point
Job B (Starting at 00:00 at an Interval of 10 hours and Scheduled by Hour)
Job A (Scheduled at 02:00 Every Day)
00:00 on the first day
Executed
-
02:00 on the first day
-
Not executed if no instance of job B is running in the [00:00:00 on day 0, 00:00:00 on day 1) time period
10:00 on the first day
Executed
-
20:00 on the first day
Executed
-
00:00 on the second day
Executed
-
02:00 on the second day
-
Executed if instances of job B are executed in the [00:00:00 on day 1, 00:00:00 on day 2) time period
10:00 on the second day
Executed
-
20:00 on the second day
Executed
-
...
...
...
Example 4: Job A depends on job B. Job A is scheduled by month, and job B is scheduled by day. Job A is executed at 02:00 on the first and second days of each month. Job B is executed at 00:00 on August 1. The following table lists how the two jobs run.Table 4 Example 4: dependency between jobs with different recurrences Time Point
Job B (Scheduled by Day and Executed at 00:00 on August 1)
Job A (Scheduled by Month and Executed at 02:00 on the First and Second Days of Each Month)
00:00 on August 1
Executed
-
02:00 on August 1
-
Not executed if no instance of job B is running in the [00:00:00 on July 1, 00:00:00 on August 1) time period
00:00 on August 2
Executed
-
02:00 on August 2
-
Not executed if no instance of job B is running in the [00:00:00 on July 1, 00:00:00 on August 1) time period
...
-
...
00:00 on September 1
Executed
-
02:00 on September 1
-
Executed if instances of job B are executed in the [00:00:00 on August 1, 00:00:00 on September 1) time period
00:00 on September 2
Executed
-
02:00 on September 2
-
Executed if instances of job B are executed in the [00:00:00 on August 1, 00:00:00 on September 1) time period
...
...
...
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.