Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Elixir流中批处理事件_Elixir - Fatal编程技术网

在Elixir流中批处理事件

在Elixir流中批处理事件,elixir,Elixir,我的流程类似于: all_feed_ids |> Flow.from_enumerable |> Flow.map(&download_feed) |> Flow.flat_map(&extract_feed) # Creates many items per feed # |> Flow.map_state(&bulk_insert_items) |> Flow.map(&download_item) |> Flow.

我的流程类似于:

all_feed_ids
|> Flow.from_enumerable
|> Flow.map(&download_feed)    
|> Flow.flat_map(&extract_feed) # Creates many items per feed
# |> Flow.map_state(&bulk_insert_items)
|> Flow.map(&download_item)
|> Flow.flat_map(&extract_item) # Creates many sub-items per item
# |> Flow.map(&bulk_insert_subitem)
建议使用
Flow.map\u state
,但它似乎不再存在

因此,我使用以下方法代替每个Flow.map_状态:

|> Flow.partition(window: Flow.Window.count(@bulk_insert_size), stages: 1)
|> Flow.reduce(fn -> [] end, fn item, list ->
  [item | list]
end)
|> Flow.on_trigger(&bulk_insert_items)
|> Flow.partition()

这是一种合理的方法,还是有另一种功能或首选方法来实现这一点(或者这可能不是流的适当用例)?

流。映射状态/2。根据报告:

each_state/2
map_state/2
-这两个函数仅在有触发器时调用,现在已被更明确命名为
on_trigger/2
的函数替换


我没有查看或尝试过您的代码,但对我来说,后者在类似情况下在我的本地项目中工作。

Flow.map\u state/2
。根据报告:

each_state/2
map_state/2
-这两个函数仅在有触发器时调用,现在已被更明确命名为
on_trigger/2
的函数替换

我没有检查过您的代码,也没有尝试过您的代码,但对我来说,后者在我的本地项目中的一个类似案例中工作过