How to make gcp schedule execute tasks at a specific time every hour? - google-app-engine

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 * * *

Related

Cron Script to execute a job every 14 days from a given date in specific time zone

I want to execute a Job in CRON for every 14 days from a specific date and timezone.
As an e.g. from JUNE 24TH every 14 days in CST time zone.
Run job every fortnight
The easy way
The easiest way to do this is simply to create the task to run every 14 days from when you want it to first run like:
CREATE TASK mytask_fortnightly
WAREHOUSE = general
SCHEDULE = '20160 MINUTE'
AS
SELECT 'Hello world'
How it works
As there are 60 minutes in an hour, 24 hours in a day and 14 days in a fortnight, ergo that's 20,160 minutes.
Caveat
The above solution does not run the task every fortnight from a given date/time, but rather every fortnight from when the task is created.
Even though this is the simplest method, it does require you to be nominally present to create the task at the exact desired next scheduled time.
As a workaround however, you can create a one-shot task to do that for you the very first time at the exact correct date/time. This means you don't have to remember to be awake / alert / present to do it manually yourself, and you can clean up the creation task afterwards.
The harder way.
Other solutions will require you to create a task which gets run every Thursday (since 2021-06-24 is/was a Thursday, each subsequent Thursday will either be the off-week, or the fortnight week)
e.g. SCHEDULE = 'USING CRON 0 0 * * THU'
Then you will add specific logic to it to determine which one the correct fortnight is.
Using this method will also incur execution cost for the off-week as well to determine if it's the correct week.
Javascript SP
In javascript you can determine if it's the correct week or not by subtracting the start date from the current date and if it's not a mutiple of 14 days, use this as a conditional to short circuit the SP.
const deltaMs = (new Date) - (new Date('2021-06-24'));
const deltaDays = ~~(deltaMs / 86400000);
const run = deltaDays % 14 === 0;
if (!run) return;
// ... continue to do what you want.
SQL
You can also check if it's a fortnight using the following SQL condition in a WHERE clause, or IFF / CASE functions.
DATEDIFF('day', '2021-06-24', CURRENT_DATE) % 14 = 0

How to Schedule days and hours for every two minutes trigger in Azure Logic app?

Every two mins it should get a trigger for 3 hours.
Run the logic app every day at 9 am?
The above logic app triggers and runs for every 2 min.
how to set timing(3hrs) and for each day(every day) at 9 am?
eg: 10 Sep 2020 at 9 am to 12 should run, every 2 min trigger and finishs the task.
You should change Frequency From Minute to Day, then cilk Add new parameter to add At these hours and At these minutes.
Because At these minutes cannot use cron expressions, you can only follow the format of 0,2,4,6.....58 to make it execute every two minutes.
If you have any other questions, please let me know.

Giving schedule time less time 1 minutes in google app engine

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.

Equal intervals between Scheduled tasks in datastore

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.

Are crons executed globally or per app instance (i.e. load dependent)?

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").

Resources