Size: a a a

Scala User Group

2016 May 11

GP

Grigory Pomadchin in Scala User Group
и рандомным образом я не могу синхроизировать все фьючеры
источник

IK

IEvgenii Korniichuk in Scala User Group
чет то что ты описываешь похоже на хороший такой проеб в архитектуре
источник

GP

Grigory Pomadchin in Scala User Group
да не;
источник

GP

Grigory Pomadchin in Scala User Group
на тасках эту задачку решить просто:

implicit class TaskBackoff[A](task: Task[A]) {
   /**
    * Implement non-blocking Exponential Backoff on a Task.
    * @param  p  returns true for exceptions that trigger a backoff and retry
    */
   def retryEBO(p: (Throwable => Boolean) ): Task[A] = {
     def help(count: Int): Future[Throwable \/ A] = {
       val base: Duration = 52.milliseconds
       val timeout = base * Random.nextInt(math.pow(2,count).toInt) // .extInt is [), implying -1
       task.get flatMap {
         case -\/(e) if p(e) =>
           help(count + 1) after timeout
         case x => Future.now(x)
       }
     }
     Task.async { help(0).unsafePerformAsync }
   }
 }
источник

ЮБ

Юрий Бадальянц in Scala User Group
А почему нельзя их и взять?
источник

GP

Grigory Pomadchin in Scala User Group
хотим выпилить от скалаза зависимость
источник

ЮБ

Юрий Бадальянц in Scala User Group
Еще в monix есть Task, как раз сегодня слушал доклад про него
источник

GP

Grigory Pomadchin in Scala User Group
потому что у нас скалаз ток изза монокля который потенциально на кошек мигрирует
источник
2016 May 12

D

Dmitry in Scala User Group
Монокль вам зачем? У softwaremil есть очень лёгкие линзы.
источник

GP

Grigory Pomadchin in Scala User Group
Да исторически сложилось) ну моноколь быстрые, но тянут за собой скалаз
источник

GP

Grigory Pomadchin in Scala User Group
да и от скалаза избавиться не удалось пока; список фьюч, которые с таймаутом рикаверятся не так просто синхронизировать оказалось ._.'
источник

SB

Slavik Baranov in Scala User Group
кстати, я недавно на вот такую либу набрел: https://github.com/pathikrit/sauron
источник

SB

Slavik Baranov in Scala User Group
Правда, пока активно не использовал, но API, имхо, поприятнее, чем у аналогов
источник

NM

Nikita Melkozerov in Scala User Group
ну https://github.com/adamw/quicklens тоже ничего
источник

NK

ID:147360519 in Scala User Group
Я правильно понимаю, что линзы нужны для трансформации неизменяемых структур данных?
источник

NK

ID:147360519 in Scala User Group
*Были придуманы
источник

GP

Grigory Pomadchin in Scala User Group
да
источник

NM

Nikita Melkozerov in Scala User Group
ага, чтобы слишком много не делать вложенных вызовов .copy
источник

λƒ

λesha ƒomkin in Scala User Group
Саурон хорошее название.
источник

NK

ID:147360519 in Scala User Group
Блин, крутая штука. Я делал так:

case class Pawn(side: Side, position: Position, board: Option[Board]) extends Piece {
 def withBoard(board: Board): Piece = Pawn(side, position, Some(board))
}

а теперь можно просто заюзать линзы
источник