Может ли Dispatcher получить доступ к своим родительским методам / атрибутам Producer?

Может ли пользовательский диспетчер сделал с @behavior GenStage.Dispatcher получить доступ к своим родительским модулям, который вызывает его как {:producer, state, dispatcher: CustomDispatcher}?

Я понял, что диспетчер запускается в том же процессе, что и производитель.

Если я, например, попытаться запустить handle_call от диспетчера производителю, тогда получу:

GenStage.call(producer, :test)                   
** (exit) exited in: GenServer.call(#PID<0.1575.0>, :test, 5000)
    ** (EXIT) process attempted to call itself
    (elixir) lib/gen_server.ex:917: GenServer.call/3

Итак, имея эту ошибку, есть ли другой очевидный способ доступа к методам производителя?

Я знаю, что вы можете инициализировать диспетчер с параметрами, но я хотел бы получить доступ к методам / состоянию производителя, потому что они изменены с помощью обратных вызовов производителя

0 ответов

Другие вопросы по тегам