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?
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.
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,
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
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?
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,
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.
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.
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?
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.
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.
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?
As stated in official documentation: https://success.outsystems.com/Documentation/11/Developing_an_Application/Use_Timers
So in production with 2 Front End Servers then 6 timers can run simultaneously
Next to that:
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?
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.
Good morning Christopher Bautista.
I access the Monitoring tab but I don't see a list of Front-End Servers under enviroment health.
Hi, since it's a personal environment, I believe Outsystems have restricted you on viewing such.
Only paid production environments have dedicated multiple front end servers.
Personal environments run on a shared OutSystems infrastructure.
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.
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.
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.
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.
Thank you Jeanene Williams
I think I will open a support to get support.
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
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
Dorine
I have already reported to OutSystems
Thank you.
I think that's the obvious answer I want to know.