Thank you, Groza, Nicolas, and Gil, for your input.

Groza suggested using multiple OFBiz instances, each dedicated to handling
specific types of job executions. However, I’m considering a different
approach, using a single OFBiz instance with multiple thread pools, each
configured with defined thread and queue sizes. This would allow us to
manage and prioritize different job types more efficiently within the same
instance.

What Nicolas and Gil proposed is a good starting point. We can define
specific thread pools in the service configurations and enhance the Job
Poller to initialize multiple ThreadPoolExecutor instances, each mapped to
designated services. I’ll take some time to review the current flow and
explore how we can integrate this into the existing thread pool mechanism.

Kind Regards,
Chandan Khandelwal



On Mon, Jun 2, 2025 at 2:18 PM gil.portenseigne <gil.portensei...@nereide.fr>
wrote:

> Hello,
>
> To complete Nicolas answer we had dev but no yet contributed a new
> parameters on service definition :
>
>     <service name="bigService" engine="groovy" send-to-pool="bigPool"
> auth="true"
>
>  location="component://bigData/groovyScripts/net/bigben/BigServices.groovy"
>              invoke="bigService" transaction-timeout="7200">
>
> That offer a way to easily plan a service to a specific pool when using
> dispatcher.runAsync("bigService", reqMap, true).
>
> But like Nicolas said, we can do more.
>
> If you need the code for that quickly we can share it.
>
> Gil
> On 30/05/25 05:54, Nicolas Malin wrote:
> > Hey,
> >
> > Thanks Danut for the sharing, I hope Chandan this will be useful for you.
> >
> > The service engine on job manager part can but receive some good
> improvement
> > to improve it capacity to support high load.
> >
> > We already share with my colleague Gil how we can improve it, however we
> > didn't share and sadly I didn't plan community time on it currently.
> >
> > If you use any idea explain during ofbizdays brainstorm, I'll be happy to
> > have your feedback :)
> >
> > Nicolas
> >
> > On 30/05/2025 12:52, Groza Danut wrote:
> > > Hello Chandan,
> > >
> > > We had a talk a couple days ago during the Ofbiz 2025 days about how
> to manage a large number of jobs. The basic idea was to split jobs in two:
> technical jobs than run fast(10-20 seconds), and back jobs that run
> slow(hours). And have one instance that runs the fast jobs and one instance
> that runs the slow jobs.
> > >
> > > You can find the discussion here starting at minute 1:08:00:
> https://www.youtube.com/live/KRR1lWZjJHQ
> > >
> > > And also at the start of this video:<
> https://www.youtube.com/live/_GzfEhRqm8Q?si=4-3JgH8y6hiC2WHd>
> > >
> > >
> > > On May 30, 2025 1:00:18 PM GMT+03:00, Chandan Khandelwal<
> chandan.khandel...@hotwaxsystems.com> wrote:
> > > > Hello All,
> > > >
> > > > During recent work with OFBiz involving a large number of background
> jobs,
> > > > I observed a limitation in the current setup: OFBiz supports only a
> single
> > > > global <thread-pool> configuration in serviceengine.xml.
> > > >
> > > > This makes it challenging to manage and optimize the execution of
> jobs that
> > > > have different resource requirements and priorities. In high-load
> > > > scenarios, this can result in lower-priority tasks affecting the
> > > > performance of more critical jobs.
> > > >
> > > > I’m currently exploring this area and would like to understand if
> others in
> > > > the community have faced similar challenges. Any thoughts,
> experiences, or
> > > > suggestions would be helpful.
> > > >
> > > > Looking forward to your input.
> > > >
> > > >
> > > > Kind Regards,
> > > > Chandan Khandelwal
> > > Groza Danut
>

Reply via email to