452
Views
26
Comments
Solved
Parallel running Timers

Hi guys. I am a newbie with outsystems.

I am told that by default there are 3 different timers running in parallel on a Front-end Server. But when I try to run 4 timers it can still run in parallel (on personal environment).

Where am I wrong?

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP
Solution

After consultation with OutSystems, I can reply that the max timers value  as documented, is implemented differently for personal environments, as they run on a shared AWS cloud infrastructure.

So the default of Max 3 different timers that can run parallel per Front End server is only relevant for paid licenses.

2024-10-25 09-14-42
Christopher Bautista

Hi @HOANG MINH , I believe the documentation states that default value is 3 timers can run at the same time but if it's more than that, it will not prevent additional timers to run but a priority will be checked by the Outsystems Scheduler Service.

Hope this helps,

Kind regards,

2021-04-17 09-53-48
José Gonçalves

Hi Hoang,

like Christopher said, the default value is 3 timers, but in the Configuration Tool it can be set a different value:

https://success.outsystems.com/Documentation/11/Reference/Configuration_Tool/Scheduler_Tab

Regards

UserImage.jpg
HOANG MINH

Thanks for your answers.

① In my case, all the timers have the same priority (normal). So in theory there will only be any 3 timers running at the same time, the other timers will be put in the queue. (I tried with 10 timers and there are 7 timers that can run at the same time with the same method as the 4 timers above)

② I have never changed the default value, and I don't think the cloud enviroment can change it in the Configuration Tool (on premisu only).

Am I missing out on anything?

2024-10-25 09-14-42
Christopher Bautista

Hello @HOANG MINH , what is your concern/issue on parallel run?

If you are still having an issue on how to design your timers in a way that they should run/interact to your business requirement/needs, I believe the below documentation will guide you in doing so.

https://success.outsystems.com/Documentation/11/Reference/OutSystems_Language/Processes/Timer

You can run a timer on demand by using the WakeUpTimer() action of which is a predefined action every time a Timer is created.

Thank you and regards,

UserImage.jpg
HOANG MINH

Thank you for your time on this topic.

I was just wondering about "how many timers can run in parallel", I figured it was 3 but according to the log it could be more than that (4 even 8).

My logic is very simple, I have 10 timers to handle bootstrap excel file into database When Publish will wake those 10 timers.

I don't know if I'm missing something, or if the free environment makes any difference.

2021-04-21 23-06-46
Jeanene Williams

It should be just the 3 however in the code you are manually starting the timer instead of letting it run on it's own schedule, it might be possible that this is overriding the queue.


UserImage.jpg
HOANG MINH

thanks for your answer

I don't know how overriding in the queue has any effect on the number of timers running in parallel.

Can you share more?

2021-04-21 23-06-46
Jeanene Williams

Timers are run through a queue system, there is a process that checks to see what timers are scheduled to run based on the date/time and then if it is due start it running in one of the "free" timer slots. Times slots aren't a physical thing, it is literally just a count to see how many processes are running and if it is less than the set maximum it starts a new one.

I'm not certain how the wake timer action works internally but maybe it launch the process immediately regardless of if a slot is free or not, or maybe it doesn't and just moves it to the front of the queue. Have you tried setting the 4 timers each as on publish or with a scheduled time instead of calling the wake action? That way you could guarantee they are run from the queue and the max value should be used.

2021-04-21 23-06-46
Jeanene Williams

There is also one other possibility, you said you are using the personal environment. This runs on shared infrastructure and I don't think you can set the maximum number of timers or even see it. Being a shared environment may mean they don't treat the max the same way. It might be a larger maximum number but shared between multiple different environments.

Just running through some possibilities, you would need someone at Outsystems to actually say the full reason and it may be different between the personal and paid versions.

UserImage.jpg
HOANG MINH

Sorry for the late reply.

I tried setting the schedule but they seem to start and end at the same time. How can I check if they are running?

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

As stated in official documentation:  
https://success.outsystems.com/Documentation/11/Developing_an_Application/Use_Timers

  •  By default only three Timers with different names can run at the same time per front-end server. 
  • When more than three Timers are scheduled to run at the same time, the Timers with higher priority run first. 

So in production with 2 Front End Servers then 6 timers can run simultaneously

Next to that:

UserImage.jpg
HOANG MINH

Thanks for your answer.

I'm using a personal environment (free), I don't know if there are more than 1 Front-End Servers in this environment because more than 3 timers can run in parallel.

Another point I noticed is that the Server recorded in the timers log is always the same (SH1D0-LTM7CG). Is it a Front-End Server?

2024-10-25 09-14-42
Christopher Bautista

Yes that is Front-end, Outsystems has this Schedule Service that manages the Timers, not sure if you are able to access the Monitoring tab via service center for personal environment, if you do, you can go to Environment Health and will be able to see the lists of the Front-end servers.

Kind regards,

UserImage.jpg
HOANG MINH

Good morning Christopher Bautista.

I  access the Monitoring tab but I don't see a list of Front-End Servers under enviroment health.

2024-10-25 09-14-42
Christopher Bautista

Hi, since it's a personal environment, I believe Outsystems have restricted you on viewing such.

Kind regards,

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

Only paid production environments have dedicated multiple  front end servers.

Personal environments run on a shared OutSystems infrastructure.

UserImage.jpg
HOANG MINH

Thanks for your reply.
I just don't understand why the number of timers running in parallel is more than 3 (the default number of timers). Don't know if I missed something.

2021-04-21 23-06-46
Jeanene Williams

I did a couple of tests and can confirm that the 3 concurrent timers per front end is enforced in the paid version even if you do a wake timer. So I'd say that it is most likely because it is shared infrastructure and the number of concurrent timers has been increased to cater for the fact that multiple peoples personal environments are all using the same scheduler. 

The documentation is all for the paid environments, the personal one is for learning and training and has different rules and restrictions so may not always match the documentation in minor ways.

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

Maybe the status gives a hint? Nothing says from your screenshot they all ran at the same time:

It only mentions all 4 of them are deactivated.

UserImage.jpg
HOANG MINH

The image above has both the start and end times of the Timers. While the Timer is running I can't determine the status, but on the Timer details, I can determine if the Timer is running or not. I determined that way. since each Timer is running for more than 2 minutes, I have enough time to determine that there are more than 3 Timers running.

UserImage.jpg
HOANG MINH

Thank you Jeanene Williams

I think I will open a support to get support.

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

I think you are on to something, I tested myself with 8 timers and they all started same time let them run for 1 minute and all ended 1 minute later.

I will also ask around at OutSystems

2021-09-06 15-09-53
Dorine Boudry
 
MVP

Hi,

I might just be adding to the confusion here, but I did a test on my personal environment, and I can see up to 8 timers starting up concurrently.

I can also see after a timer stops, a next one starts, making 8 total running again.

BUT : I don't think our personal environments are set up to deal with lot's of long-running concurrent timers, when i made them run too long, at some point no more timers got started and they all ran into errors that I can't really imagine were coming from my logic, as I'm only upping a counter.  So I think there is some sort of push-back or kill mechanism built into it to avoid a single personal environment taking too much timer resources, or something.  

So I think the personal environment is not suitable to experiment / learn about timers in real paying environments.

Attached an oml that you could experiment in your own environment with.

This is result of 3 tests in mine : the 2 first tests, the logic took too long and a lot of timers failed, the 3rd test all ran, and only 8 ran at the same time

MESSAGE
2022-07-14 07:18:40Concurrent Test : Timer 17 ended
2022-07-14 07:18:39Concurrent Test : Timer 6 ended
2022-07-14 07:18:39Concurrent Test : Timer 9 ended
2022-07-14 07:18:38Concurrent Test : Timer 8 ended
2022-07-14 07:18:38Concurrent Test : Timer 7 ended
2022-07-14 07:18:38Concurrent Test : Timer 10 ended
2022-07-14 07:18:37Concurrent Test : Timer 6 started
2022-07-14 07:18:36Concurrent Test : Timer 5 ended
2022-07-14 07:18:35Concurrent Test : Timer 13 ended
2022-07-14 07:18:34Concurrent Test : Timer 7 started
2022-07-14 07:18:34Concurrent Test : Timer 17 started
2022-07-14 07:18:34Concurrent Test : Timer 8 started
2022-07-14 07:18:34Concurrent Test : Timer 9 started
2022-07-14 07:18:34Concurrent Test : Timer 3 ended
2022-07-14 07:18:33Concurrent Test : Timer 10 started
2022-07-14 07:18:33Concurrent Test : Timer 5 started
2022-07-14 07:18:33Concurrent Test : Timer 20 ended
2022-07-14 07:18:33Concurrent Test : Timer 1 ended
2022-07-14 07:18:33Concurrent Test : Timer 2 ended
2022-07-14 07:18:33Concurrent Test : Timer 3 started
2022-07-14 07:18:32Concurrent Test : Timer 1 started
2022-07-14 07:18:32Concurrent Test : Timer 18 ended
2022-07-14 07:18:32Concurrent Test : Timer 2 started
2022-07-14 07:18:31Concurrent Test : Timer 12 ended
2022-07-14 07:18:31Concurrent Test : Timer 19 ended
2022-07-14 07:18:31Concurrent Test : Timer 15 ended
2022-07-14 07:18:31Concurrent Test : Timer 16 ended
2022-07-14 07:18:30Concurrent Test : Timer 14 ended
2022-07-14 07:18:28Concurrent Test : Timer 13 started
2022-07-14 07:18:27Concurrent Test : Timer 11 ended
2022-07-14 07:18:24Concurrent Test : Timer 12 started
2022-07-14 07:18:22Concurrent Test : Timer 4 ended
2022-07-14 07:18:19Concurrent Test : Timer 16 started
2022-07-14 07:18:19Concurrent Test : Timer 4 started
2022-07-14 07:18:19Concurrent Test : Timer 18 started
2022-07-14 07:18:19Concurrent Test : Timer 11 started
2022-07-14 07:18:19Concurrent Test : Timer 14 started
2022-07-14 07:18:19Concurrent Test : Timer 20 started
2022-07-14 07:18:19Concurrent Test : Timer 19 started
2022-07-14 07:18:19Concurrent Test : Timer 15 started

2022-07-14 07:13:43Concurrent Test : Timer 20 ended
2022-07-14 07:13:32Concurrent Test : Timer 15 ended
2022-07-14 07:13:32Concurrent Test : Timer 16 ended
2022-07-14 07:13:26Concurrent Test : Timer 12 ended
2022-07-14 07:13:22Concurrent Test : Timer 13 ended
2022-07-14 07:12:42Concurrent Test : Timer 20 started
2022-07-14 07:12:41Concurrent Test : Timer 2 ended
2022-07-14 07:12:31Concurrent Test : Timer 15 started
2022-07-14 07:12:31Concurrent Test : Timer 2 started
2022-07-14 07:12:31Concurrent Test : Timer 16 started
2022-07-14 07:12:31Concurrent Test : Timer 13 started
2022-07-14 07:12:31Concurrent Test : Timer 12 started

2022-07-14 06:58:30Concurrent Test : Timer 18 ended
2022-07-14 06:58:28Concurrent Test : Timer 16 ended
2022-07-14 06:58:25Concurrent Test : Timer 14 ended
2022-07-14 06:58:25Concurrent Test : Timer 15 ended
2022-07-14 06:58:12Concurrent Test : Timer 12 ended
2022-07-14 06:58:09Concurrent Test : Timer 13 ended
2022-07-14 06:57:58Concurrent Test : Timer 11 ended
2022-07-14 06:57:03Concurrent Test : Timer 14 started
2022-07-14 06:57:02Concurrent Test : Timer 2 ended
2022-07-14 06:56:47Concurrent Test : Timer 15 started
2022-07-14 06:56:47Concurrent Test : Timer 2 started
2022-07-14 06:56:47Concurrent Test : Timer 13 started
2022-07-14 06:56:47Concurrent Test : Timer 16 started
2022-07-14 06:56:47Concurrent Test : Timer 19 started
2022-07-14 06:56:47Concurrent Test : Timer 12 started
2022-07-14 06:56:47Concurrent Test : Timer 11 started
2022-07-14 06:56:47Concurrent Test : Timer 18 started

Dorine

QDR_TimTheToolman.oml
2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

I have already reported to OutSystems

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP
Solution

After consultation with OutSystems, I can reply that the max timers value  as documented, is implemented differently for personal environments, as they run on a shared AWS cloud infrastructure.

So the default of Max 3 different timers that can run parallel per Front End server is only relevant for paid licenses.

UserImage.jpg
HOANG MINH

Thank you.

I think that's the obvious answer I want to know.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.