Module sbroker_drop_queue

Implements a head or tail drop queue.

Behaviours: sbroker_fair_queue, sbroker_queue.

Description

Implements a head or tail drop queue.

sbroker_drop_queue can be used as a sbroker_queue module in a sbroker or sregulator. It will provide a FIFO or LIFO queue that drops the head or tail request from the queue when a maximum size is exceeded. Its argument, spec(), is of the form:
  #{out  => Out :: out | out_r, % default: out
    drop => Drop :: drop | drop_r, % default: drop_r
    max  => Max :: non_neg_integer() | infinity} % default: infinity
Out is either out for a FIFO queue (the default) or out_r for a LIFO queue. Drop is either drop_r for tail drop (the default) where the last request is droppped, or drop for head drop, where the first request is dropped. Dropping occurs when queue is above the maximum size Max (defaults to infinity).

Data Types

spec()

spec() = #{out => Out::out | out_r, drop => Drop::drop | drop_r, max => Max::non_neg_integer() | infinity}


Generated by EDoc