I am doing cron job in my application and I would like to run those cron jobs in every 5 seconds. So I make it schedule time in cron.xml to 5 seconds and 0.1 minutes but those can't make in cron job and I got fail to parse error.
below is How I configure in cron.xml
<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/cron/threadchacker</url>
<target>beta</target>
<description>daily summary job</description>
<schedule>every 5 seconds</schedule>
</cron>
</cronentries>
Format for cron regular schedule is:
every N (hours|mins|minutes) ["from" (time) "to" (time)]
Where N is integer number. So 1 minute is minimum period.
What you can do is to have a cron job that every minute queue few delayed tasks (see countdownMillis in TaskOptions)
1 with 5 seconds delay
1 with 10 seconds delay
1 with 15 seconds delay
etc.
Related
How to set schedule as "every 1 minutes from every hours from HH:10 to HH:15"?
I want the task to be executed at a specific time every hour, but gcp doesn't seem to support it.
In a nutshell,I want to execute the task 5 times per hour.
https://cloud.google.com/appengine/docs/standard/python/config/cronref
"every 1 minutes from every hours from HH:10 to HH:15" not working.
"5 times per hour" would essentially mean every 12 minutes. Try:
schedule: every 12 minutes
If you are using Cloud Scheduler, you can specify a cron:
*/12 * * * *
For running its every 11-15th every hour being 10-15 hours, try using the cron:
11-15 10-15 * * *
Consider I have a cron job running in app engine as below,
every 10 minutes from 00:00 to 02:00
My doubt is, If the task takes 5 mins to complete, Will the next task gets executed on the 15th minute or in the 10th minute?
My requirement is as below.
Task #1 starts at 00:00, runs for 4 mins.
Task #2 starts at 00:10, runs for 1 min.
Task #3 starts at 00:20, runs for 3 mins and so on!
Thanks,
Karthick.
You can find an answer in the documentation:
By default, an interval schedule starts the next interval after the last job has completed. If a from...to clause is specified, however, the jobs are scheduled at regular intervals independent of when the last job completed. For example:
every 2 hours from 10:00 to 14:00
This schedule runs the job three times per day at 10:00, 12:00, and 14:00, regardless of how long it takes to complete.
I have Go app that receives JSON in POST and stores it in a Datastore (AppEngine)
The statistic for first 24 hours:
40 entities were stored in datastore. (every entity is small less 1K, JSON with 7-10 fields)
7.20 Instance hours consumed.
7 hours is much more then I expected. I expected to see 7 seconds or even 1 second.
Is that normal?
Instance hours means how long your app standup. As GAE will go idle if no request in 15 minutes, in your case, if there is a request every 15 minutes, you may max cost 40req*15min/60=10hour instance hours. So 7.2 instance hours is possible.
The complete description would be:
run a cron job in every 15 minutes, from 8:00 am to 5:00pm, every weekday (MON-FRI) pacific time. Also it would be better to be adjustable to daylight saving changes
How to do it in a cron.yaml in GAE?
You can't. Cron gives you one of two formats, but not both:
every N (hours|mins|minutes) ["from" (time) "to" (time)]
or
("every"|ordinal) (days) ["of" (monthspec)] (time)
Your best workaround would be to use:
every 15 minutes from 8:00 to 17:00
and then in code filter out weekends.
Worst case, you can create a new cron job for each day of the week! E.g.,
every monday ...
every tuesday ...
every wednesday ...
and of course skip the weekends.
If I define a cron in App Engine to execute "every 10 minutes" - does that mean:
(a):
"every 10 minutes per app instance (i.e. load dependent)"
(b):
"every 10 minutes globally across all instances of the application" (i.e. load independent)?
It is once globally every 10 minutes. Note that the interval refers to the time between jobs. So job 2 will start 10 minutes after job 1 finishes. This might be important if your job is long-running (e.g., if it takes 5 minutes to run, then it will actually start every 15 minutes if you specify "every 10 minutes").