mirror of
https://github.com/hibiken/asynq.git
synced 2026-04-25 23:15:51 +03:00
[GH-ISSUE #173] [FEATURE REQUEST] Support other message brokers #1069
Labels
No labels
CLI
bug
designing
documentation
duplicate
enhancement
good first issue
good first issue
help wanted
idea
invalid
investigate
needs-more-info
performance
pr-welcome
pull-request
question
wontfix
work in progress
work in progress
work-around-available
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/asynq#1069
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @toszo on GitHub (Jun 16, 2020).
Original GitHub issue: https://github.com/hibiken/asynq/issues/173
Originally assigned to: @hibiken on GitHub.
Describe the solution you'd like
RabbitMQ as a message broker for tasks.
Describe alternatives you've considered
MQTT broker which would enable IoT usage.
Additional context
Working on a distributed system that part of which will run on the Edge devices.
@hibiken commented on GitHub (Jun 17, 2020):
@toszo Thank you for opening this issue!
I've thought about adding support for other message brokers and RabbitMQ is one of them. And this is definitely in the project's roadmap. However, I'd like to work on this after we have solid features implemented with Redis as a broker. If you need support for RabbitMQ soon, I'd say it's better to look for other solutions. It'll probably take a few months before I start working on adding support for other message brokers :)
@zhaolion commented on GitHub (Jul 18, 2020):
😄 Hello, @hibiken. I had use Kafka & Redis as message broker for async tasks system at the same time(an ugly combination, but it's useful), I hope you will consider adding support for Kafka/RabbitMQ :)
@zhaolion commented on GitHub (Jul 18, 2020):
How can I get the solid features plan in your design, Maybe I can contribute some features 🤓
@hibiken commented on GitHub (Jul 18, 2020):
@zhaolion thanks for commenting!
I've been exploring Kafka recently (I don't have any experience with it, so I need to learn it first 😄 ). I think it'd be great if
asynqcan also support Kafka as a message broker.In terms of features to implement before working on adding support for other message brokers, I'd like to at least resolve these issues:
Once I have tackled those issues, I think we can start looking into adding support to Kafka, RabbitMQ, etc
@rugwirobaker commented on GitHub (Aug 19, 2021):
Nats would be nice too. The only reason I hesitate with Redis is data persistence with Redis is a bit more involved. I would love to help with nats of course if there is an isolated Store interface.
@no-serve-people commented on GitHub (Sep 15, 2021):
maybe rocketmq is better
@Me1onRind commented on GitHub (Sep 24, 2021):
An idea, other message queues are supported as plugin. Use interface to decoupling from specific storage.
@danielkurniadi commented on GitHub (Nov 10, 2021):
Hi @hibiken just want to check on the progress of the blocking features that you mentioned above:
I saw as of today, November 2021. I see its already merged into the codebase for asynq. If we haven't had any progress on the external support for other broker backend (.e.g RabbitMQ, Pulsar, RocketMQ, Kafka, or etc.) I can help with it.
What I will do for you, suppose you think its a good time to start or perhaps has not started yet on these features:
Let me know if I can help on this part. You can contact me
@hibiken commented on GitHub (Nov 11, 2021):
@iqDF Thank you for checking in!
I'm still hesitant to start working on this yet since I still feel we haven't built out all the features we want to implement with Redis.
For example, these are some of the feature requests I'm interested in tackling before we can say the library is feature complete with Redis as a message broker:
When we add support for other message brokers, it'll be difficult to add new features.
That being said, we can start looking into the design of the broker interface. Currently we do have an interface type (take a look at
internal/base.Brokerinterface) but it's tightly coupled to the current implementation with Redis as a broker.@danielkurniadi commented on GitHub (Nov 11, 2021):
This blocking features of Redis are still available?
@danielkurniadi commented on GitHub (Nov 11, 2021):
Anyway yup I'll take a look into the design of broker interface.
@shuqingzai commented on GitHub (Sep 20, 2022):
Looking forward to this release, we now use RabbitMQ for queues and asynq for periodic tasks
@vladfr commented on GitHub (Oct 31, 2022):
Hi @hibiken!
I found
asynqwhile looking up Go and Mongo and queues. I write a small app in vue, backed by a REST server in Go and Mongo, and I really don't want to go into hosting Redis just for a few simple queues.Is there any renewed interest on this issue? I would love to help out and abstract a backend layer. I really like the simplicity of this project, its interface and ease of use, cli and UI.
I'm thinking of MongoDB because it's widely used, good for small projects, and has the features we'd need (tail cursor, capped cols and atomic updates via
FindAndModify().