How to get Azure Data Factory Tumbling Window Trigger to work with Daylight Savings Time - triggers

I have some tumbling window triggers that are set to run at specific intervals 6 hours apart. They need to run at a designated time (think 5am and 11am, and so on) I have them set up so that they are self-dependent and dependent on a connection check trigger.
The problem arises when daylight savings comes around. Tumbling window triggers only work in UTC and when the clock changes in our time zone, the times they are triggered change by an hour (forward or back depending on the time of year). This causes data to be late to its destination and I am forced to manually deploy new triggers around daylight savings time.
I am wondering if there is a better way to work around daylight savings time as Tumbling Window Triggers do not support any time zone other than UTC and deploying new triggers every time is not an effective solution.

Not sure if I understand your requirement, it is actually different between 6 hours apart and setting scheduled triggers for 2 designated times which are 6 hours apart.
If you want to schedule the job for every 6 hours, the timezone should have no impact since the trigger should always trigger every 6 hours. This is the correct use case for tumbling window trigger.
If you want to schedule for designated times, you should go for scheduled trigger, which supports for timezones. For catering daylight saving time, you can simply select the timezone you want, ADF will auto adjust according to daylight saving time as specified in the UI.

Related

Can interarrival time be used with anylogic schedule block?

I'm trying to model a production sequence in anylogic where orders should come in with an interarrival time of normal(8,105) seconds. These orders should come in every week day between 11 am and 2 pm (3 hour window).
I tried to implement this with the Schedule block in anylogic but this only allows me to define a rate per hour. Is there a way to do this with interarrival time?
Also the agents that arrive at 1:59 pm should also be processed even if it takes until after 2 pm. Is there a way to calculate the mean working time per day (the time from the generation of the first agent by the source block until the last generated agent enters the sink block)?
Thank you all in advance!
I would use the getHour() function and dispose of the agents if hour is not between 11 and 14. And inside the source you don't need to do anything special. If it even arrives at 11.59 pm it will be processed.

ADF Tumbling Window Trigger: Dependency trigger not working as expected

I have created a tumbling window trigger for my Azure Data Factory Pipeline Test_Daily with recurrence as 24 hours. For this pipeline, i have added a dependency trigger lets say Test_Hourly (which runs every hour) with offset as 1.00:00:00(1 day).
Test_Daily pipeline is not getting triggered even though the dependency trigger has run successfully. For example, if the daily pipeline windowStartTime is 2020-09-20 00:00:00 and Test_Hourly with WindowStartTime 2020-09-21 00:00:00 has run successfully, then the daily pipeline should get triggered. However, this is not the case and Test_Daily gets triggered only when Test_Hourly has completed 2020-09-22 00:00:00(i.e. with 2 day offset).
Please let me know how to resolve this issue. Thanks.
I think it is your setting problem.
Your Test_Daily will start at 2020-09-20 00:00:00 and end at 2020-09-21 00:00:00.
Your Test_Hourly will wait for Test_Daily to complete and then delay 1.00:00:00(1 day) to complete at (2020-09-22 00:00:00).
Test_Hourly will Waiting on dependency.
yes, it is behaving as per the design with the applied settings.
Tumbling window trigger starts at window end time (For daily pipeline it is 2020-09-21 00:00:00) and it adds offset (1 day) to it and pipeline actually runs at 2020-09-22 00:00:00.
The same is replicated when I have used hourly and 5minute triggers. In this case, hourly is dependent on 5minute trigger with an offset of 5minutes and the delay of 5min after window time is seen in triggering time of hourly trigger.

How to detect which event fired applicationSignificantTimeChange

How to detect which event (arrival of midnight or an update of the time by a carrier or the change to daylight savings time) has fired the applicationSignificantTimeChange method ?
You can cheat in this case:
check hour and minute in applicationSignificantTimeChange, if hour and minute is zero, it mean midnight or using a server time for validate

Scheduled Recurring Crystal Reports runs with delay

Suddenly all the scheduled reports runs with a delay of one hour.
Does this have anything to do with daylight savings?
The environment is: Crystal Report Server 2008, Tomcat and Business Objects Enterprise 12.0
Detail: This started to happen last weekend,when the Brazilian daylight saving was supposed to end. The server wrongly adjusted the time to end of the daylight saving.
(Here the dates of daylight savings are not default (E.g: Starts third Saturday of October, ends second Saturday of February). Due to politics reason this changes every year).
Anyway, we set the timezone again to daylight saving (which actually is going to end February 17 - this weekend). Restarted the server, but on Crystal Management Console all the reports are wrongly scheduled with +1hour. (E.g: If the report is supposed to be delivered at 12:00 PM, it's doing on 1:00 PM)
Has anyone came across this issue? I did not find anything relevant to my problem on web researches; is there a workaround for this issue? Any time zone configuration that should be made (where?) ?
Any help would be appreciated.
After the timezone ended, the schedulling reports runned on the right time again. Crystal Server had a delay in adjusting the time,because it does only when the server is idle.

java quartz cron expression with hh:mm start/end time and every X minutes

I'm trying to create a cron expression that will trigger a job according to the time I get, and every X minutes. both start/end time and the minutes intervals are parametrs I get from the user. for example:
start time: 09:15
end time: 19:35
minutes interval: 15
I want the job to start at 09:15 and to be triggred every 15 minutes, so the last job will actually be at 19:30 (because it can't be after 19:35).
my problem is that I dont know how to include the minutes of the start/end time..
How is it possible to create this kind of expression?
Thank's In advance.
I don't think that it is possible to meet your requirements in a single cron expression, as each time component (hours/minutes/seconds etc) is handled independently.
Perhaps the simplest approach would be to have a trigger for running every 15 minutes, and enable/disable this trigger at 09:15 and 19:35 (e.g. using additional triggers).
Alternatively you could have a trigger fire every 15 minutes, and procedural logic attached to this trigger which checks if the current time is between 09:15 and 19:35 before doing any work.
You don't need CRON, simple trigger will do. Check out Lesson 5: SimpleTrigger. This should work for your situation:
trigger = newTrigger()
.startAt(nineFifteen)
.endAt(nineteenThirtyFive)
.withSchedule(simpleSchedule().withIntervalInMinutes(15))
.forJob(someJob)
.build();