qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Gallagher (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-5063) Execute a program when a message arrives addressed to a specific adress
Date Fri, 09 Aug 2013 04:17:49 GMT
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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message