1
對於返回製片人:藥劑GenStage配料活動
events = [1,2,3]
{:noreply, events, state}
是每個列表項的活動,或者是列表本身的事件?
如果情況是前者:消費者會自動接收事件的數量每個消費者詢問(值配置和工藝由genserver內部處理)
或者,如果後者:它是由生產者發送正確的事件數量。
我相信文檔和示例指向第一種情況。
對於返回製片人:藥劑GenStage配料活動
events = [1,2,3]
{:noreply, events, state}
是每個列表項的活動,或者是列表本身的事件?
如果情況是前者:消費者會自動接收事件的數量每個消費者詢問(值配置和工藝由genserver內部處理)
或者,如果後者:它是由生產者發送正確的事件數量。
我相信文檔和示例指向第一種情況。
列表中有項目是事件。 GenStage.handle_demand/2
明確鍵入返回一個列表作爲第二個參數;如果它是事件本身,任何東西都會被支持作爲返回值。
gen_stage/examples
中有四個非常明顯的例子,它們基本上可以回答所有這些問題:閱讀代碼總是能夠更好地闡明任何質量文檔的意圖,即使Elixir文檔幾乎很棒。
2.1。最有人氣的例子就是dispatching events。它使用state
來存儲都未分派的事件隊列和請求的事件數量。請注意,它可能會阻止空queue
。
2.2。 rate_limiter
example’s code爲您的問題提供了一個明確的答案,即誰負責計數多個事件。