Size: a a a

Scala User Group

2020 December 30

Ж

Женя in Scala User Group
λoλcat
Важно в каком пуле?
Неа, не важно
источник

Ж

Женя in Scala User Group
λoλcat
Важно в каком пуле?
А если было бы важно?
источник

λ

λoλcat in Scala User Group
Женя
А если было бы важно?
Тогда в котоэффектах только evalOn знает как на другой пул шифтануть
источник

Ж

Женя in Scala User Group
λoλcat
Тогда в котоэффектах только evalOn знает как на другой пул шифтануть
понял, буду знать, спасибо
источник
2020 December 31

S

Stanislau Buhlak in Scala User Group
ScalaUserGroup ! "С наступающим Новым 2021 годом!"
источник
2021 January 01

ER

Evgeny Rachlenko in Scala User Group
с новым годом ;)
источник
2021 January 03

R

RAFIZ in Scala User Group
из доки акки asynchronous, non-blocking backpressure значит, что когда происходит backpressure, поток, в котором продьюсер производил данные до backpressure теперь может передаться под другую задачу?

а когда консьюмер снова готов принимать данные, под это снова будет выделен (возможно, новый) поток?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нет
источник

R

RAFIZ in Scala User Group
since entities that need to wait (a fast producer waiting on a slow consumer) will not block the thread but can hand it back for further use to an underlying thread-pool.

оттуда же
источник

R

RAFIZ in Scala User Group
мб я неправильно понял. объясните, плес
источник
2021 January 04

Oℕ

Oleg ℕizhnik in Scala User Group
Под backpressure имеется в виду какой-то сигнал или механизм, с помощью которого потребитель может сообщить, что он пока не готов обрабатывать данные, который будет как-то автоматически прокидываться вдоль потока через хорошие промежуточные шаги.
На самом деле, что в reactive-streams\reactor что там ещё в жаве, что в акке, что даже в monix\observable backpressure - это на самом деле отсутствие сигнала от потребителя.
Следующий этап через инлет прокидывает явным образом demand
https://github.com/akka/akka/blob/v2.6.10/akka-stream/src/main/scala/akka/stream/stage/GraphStage.scala#L480
Если такого нет, производитель не имеет права ничего кидать в соотв. аутлет.
https://github.com/akka/akka/blob/v2.6.10/akka-stream/src/main/scala/akka/stream/stage/GraphStage.scala#L617
Но это не значит, что он не имеет права ничего делать.
В общем случае это значит, что мы ожидаем, что если производителю нечего делать - то, наверное, его логика не будет работать, но гарантировать отсутствие действий не можем и не можем опираться на это, в особенности в сложных графах.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Все эти слова написаны для упрощения, дескать "не как в jdbc" или "не как в BlockingQueue", например, етот тред не зависнет, в ожидании инпута, а тот тред не зависнет в ожидании потребления аутпута
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Внутри там акторы, которые кидаются сообщениями вроде "вот тебе пачка элементов", "спасибо я хочу ещё n элементов"
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
Внутри там акторы, которые кидаются сообщениями вроде "вот тебе пачка элементов", "спасибо я хочу ещё n элементов"
это понимаю, да
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
Под backpressure имеется в виду какой-то сигнал или механизм, с помощью которого потребитель может сообщить, что он пока не готов обрабатывать данные, который будет как-то автоматически прокидываться вдоль потока через хорошие промежуточные шаги.
На самом деле, что в reactive-streams\reactor что там ещё в жаве, что в акке, что даже в monix\observable backpressure - это на самом деле отсутствие сигнала от потребителя.
Следующий этап через инлет прокидывает явным образом demand
https://github.com/akka/akka/blob/v2.6.10/akka-stream/src/main/scala/akka/stream/stage/GraphStage.scala#L480
Если такого нет, производитель не имеет права ничего кидать в соотв. аутлет.
https://github.com/akka/akka/blob/v2.6.10/akka-stream/src/main/scala/akka/stream/stage/GraphStage.scala#L617
Но это не значит, что он не имеет права ничего делать.
В общем случае это значит, что мы ожидаем, что если производителю нечего делать - то, наверное, его логика не будет работать, но гарантировать отсутствие действий не можем и не можем опираться на это, в особенности в сложных графах.
исходники вообще тяжко читать на таком базовом уровне как у меня сейчас
источник

R

RAFIZ in Scala User Group
RAFIZ
since entities that need to wait (a fast producer waiting on a slow consumer) will not block the thread but can hand it back for further use to an underlying thread-pool.

оттуда же
но всё-таки эти слова вроде говорят, что если продюсеру нечего делать, он поток освобождает..
источник

Oℕ

Oleg ℕizhnik in Scala User Group
RAFIZ
но всё-таки эти слова вроде говорят, что если продюсеру нечего делать, он поток освобождает..
he can hand it back
источник

Oℕ

Oleg ℕizhnik in Scala User Group
а не he must или что-то вроде того
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. АПИ такой. что он имеет такую возможность
источник

Oℕ

Oleg ℕizhnik in Scala User Group
RAFIZ
исходники вообще тяжко читать на таком базовом уровне как у меня сейчас
ну почитайте просто доку https://doc.akka.io/docs/akka/current/stream/stream-customize.html
источник