Outsystems Process: real time job execution on a dedicated server?

Outsystems Process: real time job execution on a dedicated server?

  
Use Case:
  • We need to process at least of 100 jobs per second in parallel. 
  • Each job is required to be execute instantly upon event trigger (i.e user click submit!)
  • Each job consumes 50-100MB of RAM.
  • It takes a duration of 10 to 120 seconds to complete 1 job! 
Question: Using Outsystems Process
  1. Can we execute a process in real-time in parallel? (all jobs submitted will be processed in real-time, without scheduling, and without job queuing!)
  2. Can we not re-run a job if it fails to execute? (need to limit job to 1 execution only, run once and once only! if it fails it fails!)
  3. Can we limit "process" to a dedicated server? (background workers/job processing are resource heavy, job execution is to be isolated from the the user's front end application server)
Hi Robert,

1. BPT has 10 parallell threads, that will pickup the 10 highest priority pending processes (or activities). The maximum timeout for an automatic activity is 5 minutes (if I'm not mistaken, please check doc), so you're covered there. And you'll need to make sure the app pool/IIS is properly configured to handle the 100MB * nbr of jobs. But they will run assynchrounously once you launch them (once the user clicks the button)... So the way the app is designed may need to consider the fact that background processing is not immediately started.

2. Yep. Just get an exception handler on your automatic activity, log the error, and let it close successfully.

3. Yes, you can have a Zone configured, with only one frontend server, to which you deploy that specific application. Those processes will run only in the front-end servers assigned to that zone.

If you need further control over the threading model / immediate execution you'll need to create your own windows service to manage the parallell threads and execute a webservice where you have the job logic (again with the same memory configurations in IIS, Zone distributed deployment, etc.).



Goncalo

  • "BPT has 10 parallell threads, that will pickup the 10 highest priority pending processes (or activities). "
  • "may need to consider the fact that background processing is not immediately started."

Thats going to be a problem - it looks like, we have to write our own service! 
I noticed that Processes are run by the Scheduler Service, does the number of threads for BPT change if you use the Configuration Tool on the server to change the number of Schedule Service threads?

J.Ja
Goncalo,

You said the maximum timeout for an automatic activity is 5 minutes, I am trying to run an activity that runs over this time and is causing issues.  Do you know a way to change the timeout or avoid this?

Goncalo Borrega wrote:
Hi Robert,

1. BPT has 10 parallell threads, that will pickup the 10 highest priority pending processes (or activities). The maximum timeout for an automatic activity is 5 minutes (if I'm not mistaken, please check doc), so you're covered there. And you'll need to make sure the app pool/IIS is properly configured to handle the 100MB * nbr of jobs. But they will run assynchrounously once you launch them (once the user clicks the button)... So the way the app is designed may need to consider the fact that background processing is not immediately started.

2. Yep. Just get an exception handler on your automatic activity, log the error, and let it close successfully.

3. Yes, you can have a Zone configured, with only one frontend server, to which you deploy that specific application. Those processes will run only in the front-end servers assigned to that zone.

If you need further control over the threading model / immediate execution you'll need to create your own windows service to manage the parallell threads and execute a webservice where you have the job logic (again with the same memory configurations in IIS, Zone distributed deployment, etc.).


 
 
 
Hi Daniel,

The recommendation is to split the activities into smaller activities.
What is your use case of having a single activity taking more than 5 minutes?

Regards,
João Rosado