I would like to schedule a job to fetch users from other server. I would like every hour and minute specified. For that, I have used node-cron.
For example: If I specify 2h and 5min, I would like my job to run like:
Start - 13H
14h 05m -next
16h 10m -next
18h 15m -next
...etc
Related
I have an Airflow job that I wish to run every 130 minutes. I have set the cron schedule like this: "*/130 * * * *".
This schedule functions normally, until the clock hits midnight. Each day at midnight, if a job is currently underway, Airflow will terminate the job and start a new job. I do NOT want this behavior. Thanks in advance for your advice!
I am using cron and I need to schedule my workflow, so that it runs every day hourly, just except 2 hours from 12 AM until 2 AM. Meaning it needs to run daily from 2 AM and kick off every hour, but just when the clock hits 12 AM it should't run for 2 hours. And then starts back at 2 AM to run every hour.
Would appreciate a solution.
This is a CRON job
0 0 2-23 ? * * *
Description: Job will start at second:00, at the minute:00, every hour between 02 am and 23 pm, of every day
I have found this website useful to create CRON job
We need a Cron job that runs every 5 hours and that takes a little longer than 4 hours to complete,
If it's scheduled in a Cron job as */5 for the hours part will it run at 1pm the second day?
Ie. Will the first day be 0,5,10,15,20 and then 1,6,11,21, (and so forth...)?
No, it will not.
Assuming the minute part is fixed (which makes the full cron expression into 0 */5 * * *), the cron job will always be triggered at 0th, 5th, 10th, 15th, and 20th hours every day.
In addition to that, the next cron job will be triggered regardless of whether the previous cron job has already been completed or not. For example, if the cron job at 5th hour takes 7 hours to complete, the cron job at 10th hour will still be triggered on time.
I'm trying to schedule an app to run every 5 minutes, M-F from 6am-6pm, and every 2 hours, M-F from 6pm-6am. The fixed poll frequency doesn't allow this level of scheduling, so I'm trying to use a cron scheduler.
I set the time zone to America/Chicago and the 5M expression to 0 0/5 6-18 ? * 2-6, and I set the 2H expression to 0 0/120 18-23,0-6 ? * 2-6.
According to both Cron documentation and MuleSoft documentation, this should be setup correctly and should work, and it does work locally. When I publish this to our VPC (US-EAST), I found that the 2H scheduler was working during the day until about 4PM (Central time), so I changed the expressions to this:
5M 0 0/5 0-12 ? * 2-6
2H 0 0/120 12-23 ? * 2-6
Now my 5M scheduler started at 2:15AM and ran until 7AM.
How can I setup two central timezone cron schedules to run 6am-6pm M-F every 5 minutes and 6pm-6am M-F every 2 hours on a VPC server?
MuleSoft confirmed to me that their VPC servers are UTC based, regardless of waht time zone you place on the cron scheduler/poll connector. While not ideal, that means that I needed to back the schedulers up 6 hours (to get them to central time). I suspect that DST will cause the schedule to shift one direction by an hour.
This is a good resource for learning about Mule Quartz/Cron scheduler.
There is also a Free Online cron scheduler formatter.
For the purpose of my scheduling needs, I ended up needing a total of four cron schedulers
0 0/5 12-23 ? * 2-6 - runs M-F, 6am-5:55pm (central) every five minutes.
0 0 0-11/2 ? * 3-6 - runs T-F UTC, but actually runs 6pm-4am M-F every two hours. You only need to run the app up to 4am since it is every two hours, and the five minute schedule will start promptly at 6am. Two things to note here. First, to properly rune very two hours you need to do /2 on the hour slot, instead of /120 on the minute. The minute slot can only handle values from 0-59. Second, the days are set to start on Tuesday because of the 6 hour difference from UTC to Central. If you were to use hours 0-11 (UTC) on Monday, the app would actually start at 6pm on Sunday central time.
This brings us to the two additional schedules, one to capture 12am-4am on Monday (central), and a second to capture 6pm-12am on Friday (central).
0 0 6-11/2 ? * 2 - runs every two hours between 12am-4am (central) on Monday.
0 0 0-6/2 ? * 7 - runs every two hours between 6pm and 12am (central) on Friday.
For example, if I have a cron job that I want to run every 9 hours:
0 */9 * * * my_script
The job is executed at 00:00, 9:00, and 18:00; and then the same hours the next day.
What I want is for the job to execute at 00:00, 9:00, 18:00; then 03:00, 12:00, 21:00 the next day -- a true "every 9 hours".
Is there any way make cron job run EVERY 9 hours?
Specifying */9 means that the job runs every 9 hours starting at 00:00. It starts again at 00:00 every day.
There is no syntax in cron to run a job every 9 hours.
What you can do is run a job every 3 hours, and have the command itself examine the current time and only execute 1 time out of 3. Or it can run every hour and execute one time out of every 9. Don't assume that the current time will be exact; it might run a few seconds after the hour.