【发布时间】:2018-01-10 23:25:57
【问题描述】:
我有一个 csv_file,其中 a.) 首先,每行需要转换为 xml 和 b.) 其次,转换后的 xml 将被发送到 rails 端进行一些数据库写入操作。
下面是我的 Flow 代码。
flow = csv_rows
|> Flow.from_enumerable()
|> Flow.partition
|> Flow.map(&(CSV.generate_xml(&1)))
|> Flow.map(&(CSV.save_to_rails_databse(&1)))
|> Flow.run
对于小的 csv 文件,Everyting 工作正常,但是当 csv_file 非常大(假设 20,000 条)记录时,执行第二个操作(即在 rails 端写入数据库)试图同时插入两条多条记录时间,由于elixir同时向rails端发送了太多请求,因此数据库达到了峰值。
处理 50 个批次中的事件是否会很好,min_demand 和 max_demand 在这种情况下是否有用。
【问题讨论】:
标签: elixir