Sean Gallagher created QPID-5063:
------------------------------------
Summary: Execute a program when a message arrives addressed to a
specific adress
Key: QPID-5063
URL: https://issues.apache.org/jira/browse/QPID-5063
Project: Qpid
Issue Type: Improvement
Components: Qpid Dispatch
Environment: linux
Reporter: Sean Gallagher
Priority: Minor
Start a server (if not already running) when a message arrives at a
pre-configured address.
Broadly similar in intent to xinetd or http CGI scripts.
My application has some large jobs that execute infrequently. It would be good
if these could be run on demand rather than keeping a large process in memory
that does nothing most of the time. Having the server restart when needed is
also a good guard against resource leaks / selfish garbage collectors.
There doesn't seem to be a convenient way to do this at present but I'm
thinking it might be added relatively easily to Dispatch Router and I suspect
many would find it useful.
Working out locks / race conditions would be tricky but one simple idea I had
would be to execute a user-supplied command line when a message arrives and
then lockout further invocations for a configurable time period. This would
give the new server time to startup and connect to Dispatch. Dispatch would not
invoke the command if a link was available to deliver the message.
A section could be added to qpid-dispatch.conf to configure this. e.g.
on-demand {
##
## deliveries to this address will trigger the command if link does not
already exist
##
to: myserver/myservice
##
## command line to run
##
run: myprogram
##
## delay after triggering the command before it may be retried (in response
to a new delivery)
##
lockout-interval: 60
}
This idea could be further developed in many directions, what I've put here is
the basics.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]