2017-03-09 138 views
1

對於返回製片人:藥劑GenStage配料活動

events = [1,2,3] 
{:noreply, events, state} 

是每個列表項的活動,或者是列表本身的事件?

如果情況是前者:消費者會自動接收事件的數量每個消費者詢問(值配置和工藝由genserver內部處理)

或者,如果後者:它是由生產者發送正確的事件數量。

我相信文檔和示例指向第一種情況。

回答

-1
  1. 列表中有項目是事件。 GenStage.handle_demand/2明確鍵入返回一個列表作爲第二個參數;如果它是事件本身,任何東西都會被支持作爲返回值。

  2. gen_stage/examples中有四個非常明顯的例子,它們基本上可以回答所有這些問題:閱讀代碼總是能夠更好地闡明任何質量文檔的意圖,即使Elixir文檔幾乎很棒。

    2.1。最有人氣的例子就是dispatching events。它使用state來存儲未分派的事件隊列請求的事件數量。請注意,它可能會阻止空queue

    2.2。 rate_limiter example’s code爲您的問題提供了一個明確的答案,即誰負責計數多個事件。