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.
9 replies on “AMQP and Twisted”
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.
[…] while ago I put some code online that makes using txamqp with twistd […]
Anyone using this code please read this post.