axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert lazarski <robertlazar...@gmail.com>
Subject Re: Async services
Date Thu, 06 Dec 2012 15:07:22 GMT
On Thu, Dec 6, 2012 at 11:38 AM, Ockleford Paul (NHS CONNECTING FOR
HEALTH) <paul.ockleford@nhs.net> wrote:
>
> I really need to know where I am going wrong with this because I am completely out of
ideas and I have read just about every web page I can find related to creating asynchronous
services and I still can’t get it to work, the examples make it look easy but there must
be something I missing.

Well there is an easier way that I use in cases that no standards need
to be followed. What I do is take a normal service and simply execute
the business code via a thread, and return immediately. A brief
example where execute() will not block, ie will return immediately and
leave the code executing in the background:

    private static final ThreadFactory factory = new
MyThreadFactory(new MyExceptionHandler());
    private static final ExecutorService executorService =
Executors.newFixedThreadPool(10, factory);
   MyBusinessClass myBusinessClass;

    public OMElement doAsyncJob(OMElement element) throws XMLStreamException {
        ...
        execute();
        ...
    }

    public void execute(final Long deptID, final String message, final
Boolean forceRunExecute, final String uuid) throws Exception {

        // execute asynchronously and return immediately
        executorService.execute(new Runnable() {
            public void run() {
                try {
                    myBusinessClass.runJob();
                } catch (Exception ex) {
                    logger.error(ex.getMessage(), ex);
                }
            }
        });
    }

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Mime
View raw message