Size: a a a

Scala User Group

2020 June 30

DR

Danila Romanov in Scala User Group
и правда много вопросов скопом задал
переформулирую
есть ли способ асинхронно заблочиться в акке, чтобы принт отработал через 5 секунд после обращения к эндпоинту и при этом не вешал поток

get {
         path("foo") {
           Thread.sleep(5000)
           println("Start executing localhost:8080/foo")
          ....
        }
}
источник

GL

Gennady Lebedev in Scala User Group
это вопрос не к акке, а к таймерам
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Danila Romanov
и правда много вопросов скопом задал
переформулирую
есть ли способ асинхронно заблочиться в акке, чтобы принт отработал через 5 секунд после обращения к эндпоинту и при этом не вешал поток

get {
         path("foo") {
           Thread.sleep(5000)
           println("Start executing localhost:8080/foo")
          ....
        }
}
ну напишите обычную утилиту на базе https://doc.akka.io/api/akka/current/akka/actor/Scheduler.html и промиса
источник

Oℕ

Oleg ℕizhnik in Scala User Group
У фп скалистов просто Timer есть
источник

DR

Danila Romanov in Scala User Group
Oleg ℕizhnik
У фп скалистов просто Timer есть
"Да свой я, свой! Я плохиш!"(с)
в смысле фпшник
просто пытался понять, можно ли это сделать без таймера

Спасибо за ответы!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Danila Romanov
"Да свой я, свой! Я плохиш!"(с)
в смысле фпшник
просто пытался понять, можно ли это сделать без таймера

Спасибо за ответы!
Ну есть https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html который лежит внутри таймера и акковского скедулера
источник
2020 July 01

GY

Gregory Yermolaev in Scala User Group
Всем привет)
Может кто-нибудь подсказать у меня есть trait A { def foo(): Int } и trait B { self: A =>  }. Можно ли как-то сделать оверрайд foo в B?
источник

λ

λoλdog in Scala User Group
Это ж треит, реализации нет.  Если речь про дефолт реализацию, то вроде можно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Gregory Yermolaev
Всем привет)
Может кто-нибудь подсказать у меня есть trait A { def foo(): Int } и trait B { self: A =>  }. Можно ли как-то сделать оверрайд foo в B?
А почему не trait B extends A?
источник

GY

Gregory Yermolaev in Scala User Group
λoλdog
Это ж треит, реализации нет.  Если речь про дефолт реализацию, то вроде можно
а, я ошибся, A это абстрактный класс даже. Но внутри него есть реализация foo. Но в B когда я пытаюсь заоверрайдить компилятор ругается на то, что method foo overrides nothing
источник

GY

Gregory Yermolaev in Scala User Group
Oleg ℕizhnik
А почему не trait B extends A?
мне кажется в конкретно моем случае это сильно читаемость улучшит, только из-за этого
источник

λ

λoλdog in Scala User Group
Врядли улучшит конечно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Gregory Yermolaev
мне кажется в конкретно моем случае это сильно читаемость улучшит, только из-за этого
Не нужно так делать
источник

λ

λoλdog in Scala User Group
В твоём примере даже оверраид писать не надо, просто сделать метод. Потом там где ты будешь класс реализовывать, метод будет выбираться в зависимости от порядка наследования
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Gregory Yermolaev
мне кажется в конкретно моем случае это сильно читаемость улучшит, только из-за этого
Вам всё равно придётся явно писать A with B при реализации/инстанциировании
Если foo в A абстрактный - вы можете просто заново определить его в B.
Если есть реализация - нужно вытащить абстрактный метод в отдельный трейт и унаследовать A и B от него
источник

GY

Gregory Yermolaev in Scala User Group
понял, большое спасибо)
источник

P

Pavel in Scala User Group
ну что, обновились уже?
https://github.com/zio/zio/releases/tag/v1.0.0-RC21-2
источник

λ

λoλcat in Scala User Group
λoλcat
> We are excited to announce the release of ZIO 1.0.0-RC21, what we hope will be the final release candidate before version 1.0.

😂
.
источник

АР

Андрей Романов... in Scala User Group
ZTransducer
источник

АР

Андрей Романов... in Scala User Group
ммм, найс
источник