You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
783 B

4 years ago
4 years ago
4 years ago
4 years ago
  1. package nova.monadic_sfx.executors
  2. import com.typesafe.scalalogging.Logger
  3. import monix.execution.Scheduler
  4. import monix.execution.UncaughtExceptionReporter
  5. import monix.execution.schedulers.TracingScheduler
  6. class Schedulers(
  7. val blocking: Scheduler = TracingScheduler(
  8. Scheduler
  9. .io()
  10. .withUncaughtExceptionReporter(Schedulers.reporter)
  11. ),
  12. val async: Scheduler = Scheduler.traced
  13. .withUncaughtExceptionReporter(Schedulers.reporter),
  14. val fx: Scheduler = TracingScheduler(
  15. JFXExecutionContexts.fxScheduler
  16. .withUncaughtExceptionReporter(Schedulers.reporter)
  17. )
  18. )
  19. object Schedulers {
  20. val reporter = UncaughtExceptionReporter { ex =>
  21. val logger = Logger[Schedulers]
  22. logger.error("Uncaught exception", ex)
  23. }
  24. }