Azure Function CLI irregular trigger timing and wrong details - azure

I m testing Azure function locally using cli.
I have noticed 2 issues:
Sometimes CLI do not shows correct time when function will be executing. For example I have cron to execute function every two mins but it shows function will be executed after a difference of seconds ? weird.
Often it do not starts execution as per time shown in CLI, few times it took much time and then respond.
Is is normal ? Please guide how I can fix these.

try [TimerTrigger("0 */2 * * * *")] see examples here

* */2 * * * * cron expression means that you want to execute it every second (the first *) of every 2nd minute, so
2:50:00
2:50:01
2:50:02
...
2:50:59
2:52:00
2:52:01
etc
The correct expression is 0 */2 * * * *: execute every 2nd minute when seconds are 0, which should give
2:50:00
2:52:00
Please check if you still have delays after this change, and it so, post it as a new question with exact description of the problem.

Related

Understand the meaning of Crontab timing

I am trying to understand the crontab timing for the following :
00 */2 * * *
if I understood correctly , this runs every half hour , right ?
From crontab manual
Step values can be used in conjunction with ranges. Following a range with "" specifies skips of the number’s value through the range.
For example, "0-23/2" can be used in the hours field to specify command execution every other hour (the alternative in the V7 standard is
"0,2,4,6,8,10,12,14,16,18,20,22"). Steps are also permitted after an asterisk, so if you want to say "every two hours", just use "*/2".
This runs every two hours.
0 */2 * * *
Following runs every 30 minutes,
30 * * * *

Linux Cron tab Expression for a job run in different hours

I need to have a single cron tab entry configured for a scheduled job
The job runs at
0-4 hours and then 16-20 hours
I tried this
0 */0-4,9-23 * * * some_report.sh
*/15 0-4,9-23 * * * some_report.sh
I checked this # site http://cronchecker.net
but its not the correct entry..
How can i configure the cron expression for this job.
0 0-4,16-20 * * * some_report.sh does exactly what you're asking.
Also try crontab.guru for similar crontab questions.

How to give a random delay on Cron Jobs commands

I have tried a couple of suggestions but always failed.
I want to get a php file runned almost every minute, for this I am using the command:
* * * * * wget http://link.php
How can I give that command a random delay?
For example,
1st time : working in 65th second
2nd time : working in 67th second
3rd time : working in 72nd second

Quartz Cron Expression: Run Job Every 10 minutes starting NOW (immediately)

I am using Quartz Scheduler using Spring. I want to configure the same with following schedule:
Run Job Every 10 minutes starting NOW
I am using following expression for the same.
0 */10 * * * ?
I thought * in the minutes field would make it run the first minute, but it does not do that way. It runs the first 10th minutes from now and then every 10 minutes afterwards.
Can anybody please suggest me the reason for this behavior and the solution to my problem also?
0 0/10 * 1/1 * ? *
Please see : http://www.cronmaker.com/
check the minute your at now and add them as a list to your crontrigger. if you start the trigger at minute 12 for example add
0 2,12,22,32,42,52 * * * ?
as your cron expression
Edit:
Another solution would be to define a simpletrigger that repeats every ten minutes
SimpleTrigger trigger = new SimpleTrigger("myTrigger",
null,
new Date(),
null,
SimpleTrigger.REPEAT_INDEFINITELY,
10L * 60L * 1000L);
You can use something like
0 1-59/10 * * * ?
That will trigger the job at any minute and 10 minutes after that. I didn't try it but it looks right. :)
*/10 * * * *
Every 10 minutes starting from the moment you create the cron job, wether you prefer (user crontab, /etc/cron.d/, ...).

Cron expression for a time range

I am using Quartz.Net to schedule my jobs in my application. I was just wondering if a CRON expression for the following scenario can be built:
Every second between 2:15AM and 5:20AM
robyaw,
Thanks a lot for your answer. And I apologize for such a delay in replying. I had actually been off for a while. Your solution indeed works. I had to create 3 CRON triggers for the time range that I had specified. You were right with the time ranges that you had mentioned. However, for the 3 CRON expressions that you had mentioned. I am afraid they might not work as intended. These expressions work for the time range : 2:15AM - 5:20AM - Everyday
1) * 15-59 2 * * ? - Every second from 2:15AM to 3:00AM, ie, 2:15:00AM to 2:59:59AM
2) * 0-59 3-4 * * ? - Every second from 3:00AM to 5:00AM, ie, 3:00:00AM to 4:59:59AM
3) * 0-19 5 * * ? - Every second from 5:00AM to 5:20AM, ie, 5:00:00AM to 5:19:59AM
#gauteh : Please note that Quartz .Net actually supports secondly trigger.
Hope this helps others who might need a solution to a similar problem.
Regarding cron seconds support, there appears to be some difference in the syntax used between the UNIX cron tool and CRON Expression. According to the Quartz CRON Documentation however, seconds is supported.
Given the above, I would create three CRON Triggers to handle:
2:15:00 - 2:59:59
3:00:00 - 4:59:59
5:00:00 - 5:19:59
Which would translate to (I believe):
* 15/1 2 * * ?
* * 3-5 * * ?
* 0-20 5 * * ?
You have here a interval trigger (every second) that translates cleanly to SimpleTrigger. What you need with it is a restriction to only allow it to run in specific time range (2:15 - 5:20). This you can achieve by using a calendar, more precisely a DailyCalendar. You can set daily calendar to have this time range and set the InvertTimeRange to true to include the range instead of default of excluding the range.
Read more about the calendars in the tutorial and DailyCalendar API documentation.

Resources