You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. List (Queuex.Backends.List)
2. Red-black tree (Queue.Backends.RedBlackTree)
Usage
1. Define your queue module.
defmoduleMyQueuedouseQueuex,max_num: 3,# (required, integer) max worker numbersworker: :my_worker,# (required, atom) callback functionbackend: # (optional, Queuex.Backends.List(default) or Queuex.Backends.RedBlackTree) queue backenddefault_priority: 1,# (optional, integer, default: 1) default priority for &MyQueue.push/1, smaller means high priorityunique: 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`defmy_worker(term,_priority)do:timer.sleep(10000)term|>IO.inspectendend
2. supervise your queue module
[MyQueue.child_spec...# your other supervisor or worker]|>supervisestrategy: :one_for_one
3. push term to queue
MyQueue.push(term,priority)MyQueue.push(term)# push term with default priority