using asynqueue as part of twisted application
The only way I have ever successfully used the wonderful Asynqueue <http://pypi.python.org/pypi/AsynQueue/0.3> module in a twisted application (using twistd) is by calling reactor.callWhenRunning(srvc.startup) where 'srvc' is a twisted.application.service object, and 'startup' is a function in which the queue is instantiated. Is there a more obvious way? Simply composing an object with a member that is a queue does not seem to work. The queue has to be started only when the reactor is running, which kinda makes sense, but is difficult for a noobie like me to figure out. -martin
On Tue, Nov 25, 2008 at 7:32 PM, Martin Bright <Martin.Bright@casero.com> wrote:
The only way I have ever successfully used the wonderful Asynqueue module in a twisted application (using twistd) is by calling
reactor.callWhenRunning(srvc.startup)
where 'srvc' is a twisted.application.service object, and 'startup' is a function in which the queue is instantiated.
I have nil experience with Asynqueue, but you shouldn't have to directly interact with the reactor to start a service.
Is there a more obvious way?
The "obvious way" depends on the application. If you're writing a simple client application you might try something like this: ... if __name__ = '__builtin__': # run with twistd -y from twisted.application import service application = service.Application('foo') svc = ... # Initialize asyncqueue service ... svc.setServiceParent(application) This might be more than you need for your application, but I would suggest also reading about Twisted application plugins: http://twistedmatrix.com/projects/core/documentation/howto/tap.html
Simply composing an object with a member that is a queue does not seem to work. The queue has to be started only when the reactor is running, which kinda makes sense, but is difficult for a noobie like me to figure out.
If you want a function to be called when the reactor is running, then what you've done is correct - reactor.callWhenRunning(). However, this is not the normal way to start services. Drew
participants (2)
-
Drew Smathers -
Martin Bright