簡體   English   中英

使用bacon.js事件流池實現生產者/消費者

[英]Implementing producers/consumers with bacon.js event stream pool

我想用bacon.js事件流池實現生產者使用者模式。 這是我要解決的特定問題:

我有一個“ n”個網址列表。 我想創建事件流以對這些URL發出HTTP請求,但我想一次將其限制為“ x”個流(“ x”網絡請求)。 在上述流的事件處理程序中,我創建了一個新的事件流,該事件流將http響應寫入文件。 但是我想將一次寫入文件的流的數量限制為“ y”。

在Gevent / Java中,我將創建適當大小的線程池並使用適當線程池中的線程。 我如何為事件流做類似的事情?

使用flatMapWithConcurrencyLimit,您將能夠控制生成的流的數量:

function fetchUsingHttp(url) { .. } // <- returns EventStream of http result
function writeToFile(data) { .. } // <- returns EventStream of file write result
var urls; // <- EventStream of urls
var maxRequests, maxWrites; // <- maximum concurrency limits
var httpResults = urls.flatMapWithConcurrencyLimit(maxRequests, fetchUsingHttp)
var fileWriteResults = httpResults.flatMapWithConcurrencyLimit(maxWrites, writeToFile)
fileWriteResults.log()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM