Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Собственно проблема в том, что при описании dataflow и workflow сетей (а по большому счету, это одно и то же) узлы этих сетей обычно называют не акторами, а как-нибудь по другому
хотя они именно акторы и есть
In all dataflow models of computation, the model components (which we call actors,
and which might also be called processes in other models of computation) communicate
by sending each other packets of data called tokens along unidirectional channels with
exactly one reader and one writer.
И выделять акторы с 2 входами в отдельную категорию так же наивно, как выделять сложение и умножение из всего множества математических функций только на том основании, что у них 2 аргумента.
ясно любому, кто пытался реализовать и то, и другое.
То, что actor model Хьюита — частный случай dataflow, ясно любому, кто пытался реализовать и то, и другое.хотелось увидеть что-то уровнем повыше студенческой курсовой.
Не оправдавшиеся ожидания обычно огорчают.Так я увидел как раз то, что ожидал.
Dataflow актор защитить от перегрузки легко — стоит лишь добавить обратную связь по переполнению и завести ее на добавочный вход.
Или разбить актор С на 2 стадии — первая получает ссылку на B и делает запрос к B на резервирование места, посылая в запросе ссылку на вторую стадию.
А отличается тем, что общее число таких запросов ограничено общим числом акторов.
Отсюда и решение — пусть актор (точнее, один из его входов) сам выступает в качестве запроса, а очередь запросов сделать в виде списка, а не массива.
Посмотрите http://www.reactivemanifesto.org и связанные имплементации. Там эта тема фигурирует под названием http://www.reactivemanifesto.org/glossary#Back-Pressure
Немного заблудился в комментариях. О какой ситуации говорите вы?
Объединяем акторов и SEDA-подход: зачем и как?