Question

This may sound like a dumb question. In my application, I have a scheduler which schedules the job and WEB UI where the user interacts and monitors the status of the job. There is a job processing mechanism which runs a thread every 5 minutes to check for the status of the thread. Currently everything is running under one JVM. I want to deploy scheduling part and web ui part in different jvms so that the web ui does not get bogged down when jobs are being scheduled and fired up in the backend.

My question is - how can i deploy part of the application(WEB UI) in one JVM and another part of the application(scheduling and running of the job) in another jvm?

Another question I have is regarding the architecture of the scheduling mechanism. My proposed architecture is we have a scheduler layer and a web ui interaction layer. From there we put jobs in the JMS Queue or ActiveMQ and then we have different java processes (different jvms running) that will pick the job from the ActiveMQ and process it and we have to make sure that state of jobs is being properly communicated between different jvms. Does this idea make sense? If so then would quartz be an appropriate tool here? What are the alternative solutions keeping my requirements in mind?

Thanks!

Was it helpful?

Solution

It makes sense to want to keep the scheduler piece separate from the web ui. Assuming you have two different ear or war files, it should be relatively easy to perform. Setup another JVM, deploy only the ui ear/war file to it and you should be good to go.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top