In one of my pet projects I’ve been using Twisted and txamqp. I use Twisted’s twistd to launch the service but unfortunately txamqp doesn’t come with any examples of how to use it with twistd. So I wrote a factory and protocol which makes it trivial to use txamqp with twistd. I haven’t tested it extensively but it appears to survive losing the connection to the AMQP server and reconnecting. I’m far from a Twisted expert though so please let me know if this isn’t the way it supposed to be done.
You can find the code in my Git repository.
Hello Dan! Is there a url that I can clone with git expose? Your project page mentions that I could go to http://git.coverfire.com/txamqp-twistd.git/, but the web server is giving me a 403/Forbidden error.
Oops. Fixed. You can now clone with the following:
git clone http://git.coverfire.com/txamqp-twistd.git
Hi,
Thanks for the example code. There’s a small bug in your code which causes it to always default to the ‘/’ vhost even if specified otherwise.
Line 169 should read:
self.vhost = vhost or '/'
instead of'/' or vhost
.cheers! smn
Thanks Simon. I’ve fixed this in the repository.
Thanks Dan,
I was working on writing something similar and when trying to work it all out I discovered this. It has helped with my understanding and is much more complete than mine so I am adapting to to suit my needs. While doing this is noticed a little bug where you are always using the method args instead of your defaults even if there is nothing passed into the __init__ method .
I think line 180 should read
reactor.connectTCP(self.host, self.port, self.self)
Sorry that should be
reactor.connectTCP(self.host, self.port, self)
Thanks. I’ve committed this fix. If you make any other improvements please let me know.
Pingback: txamqp-twistd update | Dan Siemon
Anyone using this code please read this post.