Popularity
1.9
Stable
Activity
0.0
Stable
11
2
1
Monthly Downloads: 8
Programming language: Elixir
License: Do What The F*ck You Want To Public License
Tags:
Queue
Latest version: v0.3-dev
queuex alternatives and similar packages
Based on the "Queue" category.
Alternatively, view queuex alternatives based on common mentions on social networks and blogs.
-
kaffe
An opinionated Elixir wrapper around brod, the Erlang Kafka client, that supports encrypted connections to Heroku Kafka out of the box. -
task_bunny
TaskBunny is a background processing application written in Elixir and uses RabbitMQ as a messaging backend -
hulaaki
DISCONTINUED. DEPRECATED : An Elixir library (driver) for clients communicating with MQTT brokers(via the MQTT 3.1.1 protocol). -
adap
Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules. -
exdisque
Elixir client for Disque (https://github.com/antirez/disque), an in-memory, distributed job queue.
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai
Do you think we are missing an alternative of queuex or a related project?
Popular Comparisons
README
Queuex
Queuex is a Priority Queue.
These backends are supported:
1. List (Queuex.Backends.List)
2. Red-black tree (Queue.Backends.RedBlackTree)
Usage
1. Define your queue module.
defmodule MyQueue do
use Queuex,
max_num: 3, # (required, integer) max worker numbers
worker: :my_worker, # (required, atom) callback function
backend: # (optional, Queuex.Backends.List(default) or Queuex.Backends.RedBlackTree) queue backend
default_priority: 1, # (optional, integer, default: 1) default priority for &MyQueue.push/1, smaller means high priority
unique: false # (optional, true or false(default) or :strictly) duplication term is allowned in queue. false => don't check, true => check with `backend.has_value?/2`, :strictly => check with `backend.has_priority_value?/3`
def my_worker(term, _priority) do
:timer.sleep(10000)
term |> IO.inspect
end
end
2. supervise your queue module
[ MyQueue.child_spec
... # your other supervisor or worker
] |> supervise strategy: :one_for_one
3. push term to queue
MyQueue.push(term, priority)
MyQueue.push(term) # push term with default priority
TODO
- [ ] Benchmark
- [ ] Document