summaryrefslogtreecommitdiff
path: root/cask/src/cask/internal/BatchActor.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2019-09-15 13:11:17 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2019-09-15 13:19:12 +0800
commitf158811a79f702a406e3dd2b961f3b085e6c47c0 (patch)
tree190d0b7eb7d3ea4bcfb7364bd8c73fa5315c966b /cask/src/cask/internal/BatchActor.scala
parent0e098a93da94c251eb05d42bc7ef48394600508c (diff)
downloadcask-f158811a79f702a406e3dd2b961f3b085e6c47c0.tar.gz
cask-f158811a79f702a406e3dd2b961f3b085e6c47c0.tar.bz2
cask-f158811a79f702a406e3dd2b961f3b085e6c47c0.zip
Sketch out a standard `cask.Logger` interface and standardize dependency injection via case class implicits
Diffstat (limited to 'cask/src/cask/internal/BatchActor.scala')
-rw-r--r--cask/src/cask/internal/BatchActor.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/cask/src/cask/internal/BatchActor.scala b/cask/src/cask/internal/BatchActor.scala
index 1566a18..60b5f57 100644
--- a/cask/src/cask/internal/BatchActor.scala
+++ b/cask/src/cask/internal/BatchActor.scala
@@ -1,5 +1,7 @@
package cask.internal
+import cask.util.Logger
+
import scala.collection.mutable
import scala.concurrent.ExecutionContext
@@ -8,7 +10,8 @@ import scala.concurrent.ExecutionContext
* of queued items. `run` handles items in batches, to allow for batch
* processing optimizations to be used where relevant.
*/
-abstract class BatchActor[T]()(implicit ec: ExecutionContext) {
+abstract class BatchActor[T]()(implicit ec: ExecutionContext,
+ log: Logger) {
def run(items: Seq[T]): Unit
private val queue = new mutable.Queue[T]()
@@ -24,7 +27,7 @@ abstract class BatchActor[T]()(implicit ec: ExecutionContext) {
def runWithItems(): Unit = {
val items = synchronized(queue.dequeueAll(_ => true))
try run(items)
- catch{case e: Throwable => e.printStackTrace()}
+ catch{case e: Throwable => log.exception(e)}
synchronized{
if (queue.nonEmpty) ec.execute(() => runWithItems())
else{