我想在 Darts 中设置一个函数队列。排队应该是异步的,允许多个函数同时运行。但是,最多应同时执行三个功能。我怎样才能实现这个目标?
我已经绑定了一个列表,但我正在努力添加同时运行函数的限制
List<String> queue = new List();
main(){
queue.add("...");
queue.add("...");
queue.add("...");
for(String q in queue){
await crawl(q);
}
}
crawl(String) async{
...
}
Run Code Online (Sandbox Code Playgroud)
我会使用队列:
import "dart:collection";
final queue = Queue<String>();
main() {
queue
..add("...")
..add("...")
..add("...");
while (queue.isNotEmpty) {
await crawl(queue.removeFirst());
}
}
crawl(String x) async {
.... queue.add(...) ...
}
Run Code Online (Sandbox Code Playgroud)
这应该有效。它不会进行并发抓取,因为等待每个操作。如果你想要并发爬行,我建议你更聪明一点。寻找工作池或类似的结构,以确保同时运行一定数量的操作。
| 归档时间: |
|
| 查看次数: |
3914 次 |
| 最近记录: |