Skip to content

Conversation

@roncemer
Copy link
Contributor

@roncemer roncemer commented Jun 21, 2025

Added RabbitMQ broker in rabbitmq/broker.go, and unit tests under rabbitmq/rabbitmq/broker_test.go.

Moved redis examples under examples/redis.

Added rabbitmq examples under examples/rabbitmq.

Also, there was a bug in examples/redis/producer.py. It was attempting to switch the protocol version from 2 to 1 on an existing Celery app, but the protocol version wasn't actually switching (subsequent tasks were still sent with protocol version 2). To fix this, I created producer_v1.py which creates an app with protocol version 1.

This needs to be merged, and a new release created, in a timely fashion, if possible. I would prefer not to maintain my own fork of this project.

Thanks for writing this implementation! With the RabbitMQ broker, it will be very useful.

In the future, we might want to think about changing the interface to the Send() and Receive() functions in the broker, as Redis and RabbitMQ package things differently. Instead of passing and returning an array of bytes, maybe we should pass a new Task structure.

Copy link
Owner

@marselester marselester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding a RabbitMQ broker! I didn't know that its contract will be so different from Redis when I was designing this package. Probably you'll be better off forking and overhauling things as needed since I don't plan making any major changes to the existing API.

@marselester marselester merged commit dd35de8 into marselester:main Jun 27, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants