Packages
honeydew
1.0.3
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc7
1.0.0-rc6
1.0.0-rc5
1.0.0-rc4
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Pluggable local/clusterable job queue focused on safety.
Current section
Files
Jump to
Current section
Files
lib/honeydew/dispatcher/mru.ex
defmodule Honeydew.Dispatcher.MRU do
# TODO: docs
# TODO: abstract common LRU/MRU functionality?
def init do
{:ok, :queue.new}
end
def available?(free) do
!:queue.is_empty(free)
end
def check_in(worker, free) do
:queue.in_r(worker, free)
end
def check_out(_job, free) do
case :queue.out(free) do
{{:value, worker}, free} ->
{worker, free}
{:empty, _free} ->
{nil, free}
end
end
def remove(worker, free) do
:queue.filter(&(&1 != worker), free)
end
end