GenStage.DemandDispatcher (gen_stage v1.3.2)
View SourceA dispatcher that sends batches to the highest demand.
This is the default dispatcher used by GenStage. In order
to avoid greedy consumers, it is recommended that all consumers
have exactly the same maximum demand.
Options
The demand dispatcher accepts the following options on initialization:
:shuffle_demands_on_first_dispatch- whentrue, shuffle the initial demands list which is constructed on subscription before first dispatch. It prevents overloading the first consumer on first dispatch. Defaults tofalse.:max_demand- the maximum demand expected onGenStage.ask/3. Defaults to the first demand asked.
Examples
To start a producer with demands shuffled on first dispatch:
{:producer, state, dispatcher: {GenStage.DemandDispatcher, shuffle_demands_on_first_dispatch: true}}