Every 10 minutes: date_conditions: 1, days_of_week: all, start_mins: 00,10,20,30,40,50.
start_mins repeats every hour; start_times is for specific clock times.
Business hours only: add run_window: "08:00-18:00".
If a run is still RUNNING when the next start comes, that start is skipped.
Keep runs shorter than the gap (warn with max_run_alarm), or chain runs instead of using the clock.
โฆ Definition~90s read
What is AutoSys?
AutoSys has no 'every N minutes' attribute. You list the minutes past the hour in start_mins, and they repeat every hour on the days in days_of_week. run_window limits which hours those starts can happen in.
โ
start_mins is a list of minute marks on a clock face.
Plain-English First
start_mins is a list of minute marks on a clock face. Every hour, when the minute hand passes one of them, the job starts, unless it's still running from last time.
Running a job every ten minutes takes three lines of JIL. The trouble starts when a run takes longer than ten minutes: the next start doesn't queue up, it just doesn't happen. This guide gives the JIL, how to limit it to business hours, and how to handle runs that outgrow the gap.
The JIL for Every 10 Minutes
date_conditions: 1 turns on time-based scheduling. days_of_week says which days, and start_mins lists the minutes past the hour. The minutes repeat every hour, so this starts the job six times an hour, all day, every day.
Every 5: start_mins: 00,05,10,15,20,25,30,35,40,45,50,55. Every 15: start_mins: 00,15,30,45.
๐ฏ Key Takeaway
date_conditions + days_of_week + start_mins.
start_mins vs start_times
start_times takes clock times ("02:00, 14:00") and runs at exactly those. start_mins takes minutes and repeats them every hour. You can't use both on the same job. For 'every N minutes', start_mins is the one.
compare.jilTEXT
1
2
3
4
5
/* Twice a day */
start_times: "02:00, 14:00"
/* Every10 minutes */
start_mins: 00,10,20,30,40,50
๐ฏ Key Takeaway
start_mins repeats hourly; start_times doesn't.
Business Hours Only: run_window
run_window limits the period in which a scheduled start is allowed. Combined with start_mins, the job runs every 10 minutes between 08:00 and 18:00 and not at all overnight.
run_window limits which hours the starts can happen.
When a Run Is Longer Than the Gap
AutoSys won't start a job that is still running. If the 10:10 start arrives while the 10:00 run is still going, the 10:10 start is skipped; it isn't queued. Nothing fails and nothing alerts, so it's easy to miss. Check real run times against the gap.
check_runs.shBASH
1
autorep -J FIN_POLL -r -6
Output
FIN_POLL 09:00:00 09:14:02 SU
FIN_POLL 09:20:00 09:34:11 SU
FIN_POLL 09:40:00 09:53:57 SU
๐ฏ Key Takeaway
A run longer than the gap silently skips the next start.
Fixing Overlaps
Either make each run fit inside the gap and warn when it gets close, or stop using the clock: chain the runs so the next starts a fixed time after the previous one finishes (a short sleep job with a success condition on the poller).
fix.jilTEXT
1
2
update_job: FIN_POLL
max_run_alarm: 9 /* warn before the next start */
๐ฏ Key Takeaway
Fit inside the gap, or chain the runs.
● Production incidentPOST-MORTEMseverity: high
Half the Runs Went Missing
Symptom
At month end FIN_POLL ran at :00, :20, :40 but not at :10, :30, :50. No failures, no alarms.
Assumption
The team assumed the scheduler was overloaded at month end.
Root cause
The poller normally took 4 minutes but took 14 at month end. When each 10-minute start came, the previous run was still RUNNING, so AutoSys didn't start another instance and that start was missed.
Fix
Added max_run_alarm: 9 to warn when a run approaches the gap, and moved the slow month-end step out of the poller so each run fits inside 10 minutes.
Key lesson
A running job can't start again, so overlapping starts are skipped.
Compare run times with the gap.
Warn before the next start, not after.
Production debug guideWhy a frequent job misses runs5 entries
Symptom · 01
Job never runs
→
Fix
Check date_conditions: 1 is set, and that the job isn't ON_HOLD or ON_ICE.
Symptom · 02
Runs once a day, not every 10 minutes
→
Fix
You used start_times. Use start_mins for minutes past every hour.
Symptom · 03
Runs outside business hours
→
Fix
Add run_window: "08:00-18:00".
Symptom · 04
Some starts missing
→
Fix
Compare run times (autorep -J JOB -r -10) with the gap. A run still in progress skips the next start.
Symptom · 05
Job is inside a box
→
Fix
The box's own schedule controls it. Schedule the box, or move the job out.
⚙ Quick Reference
5 commands from this guide
File
Command / Code
Purpose
fin_poll.jil
insert_job: FIN_POLL job_type: CMD
The JIL for Every 10 Minutes
compare.jil
/* Twice a day */
start_mins vs start_times
business_hours.jil
update_job: FIN_POLL
Business Hours Only
check_runs.sh
autorep -J FIN_POLL -r -6
When a Run Is Longer Than the Gap
fix.jil
update_job: FIN_POLL
Fixing Overlaps
Key takeaways
1
Every N minutes = start_mins with date_conditions
1.
2
start_mins repeats every hour.
3
run_window limits the hours.
4
A run longer than the gap skips the next start.
5
Warn with max_run_alarm below the gap.
Common mistakes to avoid
3 patterns
×
Forgetting date_conditions: 1
Symptom
The job never starts on its own.
Fix
start_mins is ignored without date_conditions: 1.
×
Using start_times for 'every N minutes'
Symptom
It runs once a day.
Fix
Use start_mins.
×
Ignoring run time
Symptom
Runs silently skipped when they slow down.
Fix
Compare runtime with the gap and set max_run_alarm.
INTERVIEW PREP · PRACTICE MODE
Interview Questions on This Topic
Q01JUNIOR
How do you run an AutoSys job every 15 minutes during business hours?
Q02SENIOR
A job scheduled every 10 minutes is missing runs. Why?
Q01 of 02JUNIOR
How do you run an AutoSys job every 15 minutes during business hours?