Skip to content

Instantly share code, notes, and snippets.

@adamw
Last active June 7, 2018 07:56
Show Gist options
  • Save adamw/6d920768ccdbb09125cdc8ee8aaa2384 to your computer and use it in GitHub Desktop.
Save adamw/6d920768ccdbb09125cdc8ee8aaa2384 to your computer and use it in GitHub Desktop.
def workerFor(data: CrawlerData, url: Host): Task[(CrawlerData, MQueue[Url])] = {
data.workers.get(url) match {
case None =>
val workerQueue = MQueue.make[Url]
worker(workerQueue, crawlerQueue).map { workerFiber =>
val workerData = WorkerData(workerQueue, workerFiber)
val data2 = data.copy(workers = data.workers + (url -> workerData))
(data2, workerQueue)
}
case Some(wd) => Task.now((data, wd.queue))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment