Size: a a a

2020 August 10

I

Igor in ErlangRus
https://github.com/basho/sidejob но я не буду это использовать;)
источник

A

Andrey in ErlangRus
Иванов Иванов
А разве в rpc подобного нет?
там оно есть, но ниточек этим всем рулить мало. Тот же yield может висеть до второго пришествия
источник

VS

Vladimir Sekisov in ErlangRus
Igor
там нет ограничения на количество вызвов. Если я пытаюсь всё сразу обрабатывать - получается плохо)
если по-простому, то как-то так:
https://gist.github.com/eryx67/9580e00fe0f71bbe407586ee18b9fa29
источник

I

Igor in ErlangRus
спасибо)
источник

ИИ

Иванов Иванов... in ErlangRus
Он их пачками выполняет получается? Т.е. run/spawn/wait можно на заготовки из rpc заменить?
источник

AK

Aleksey Kluchnikov in ErlangRus
мне кажется ошибка есть в этом коде, wait_job_result({Pid, Ref}) ->
   receive
       {'DOWN', Ref, _, _, normal} -> receive {Pid, Result} -> Result end;
       {'DOWN', Ref, _, _, Reason} -> {error, Reason}
   end.
тут же не гарантируется что между {'DOWN', Ref, _, _, normal} и {Pid, Result} не влезет никто?
источник

VS

Vladimir Sekisov in ErlangRus
Иванов Иванов
Он их пачками выполняет получается? Т.е. run/spawn/wait можно на заготовки из rpc заменить?
я не помню, что там в rpc, идея простая и тупая, дальше можно развивать по надобности
источник

AK

Aleksey Kluchnikov in ErlangRus
надо тестить..
источник

VS

Vladimir Sekisov in ErlangRus
Aleksey Kluchnikov
мне кажется ошибка есть в этом коде, wait_job_result({Pid, Ref}) ->
   receive
       {'DOWN', Ref, _, _, normal} -> receive {Pid, Result} -> Result end;
       {'DOWN', Ref, _, _, Reason} -> {error, Reason}
   end.
тут же не гарантируется что между {'DOWN', Ref, _, _, normal} и {Pid, Result} не влезет никто?
если толь кто-то украдет референс, но это дорого - проще разбомбить тактической ракетой.
источник

ИИ

Иванов Иванов... in ErlangRus
Vladimir Sekisov
я не помню, что там в rpc, идея простая и тупая, дальше можно развивать по надобности
Я так понял тс хочет пул а не пачку
источник

AK

Aleksey Kluchnikov in ErlangRus
референс не надо красть, просто два сообщения перепутаться могут
источник

AK

Aleksey Kluchnikov in ErlangRus
или такого быть не может.. блин надо сообразить :))
источник

VS

Vladimir Sekisov in ErlangRus
Aleksey Kluchnikov
референс не надо красть, просто два сообщения перепутаться могут
не могут, если все выполняется, как написано
источник

VS

Vladimir Sekisov in ErlangRus
Иванов Иванов
Я так понял тс хочет пул а не пачку
я так понял, там есть пул и задача - его не перегрузить очень большими тысячами параллельных запросов
источник

AK

Aleksey Kluchnikov in ErlangRus
erlang:spawn_monitor(fun() -> Parent ! {self(), Fun()} end).
От этой функции DOWN и сообщение прилетят не атомарно же?
источник

AK

Aleksey Kluchnikov in ErlangRus
мне кажется таки ошибка, могут местами в списке перепутаться ответы
источник

VS

Vladimir Sekisov in ErlangRus
без разницы, receive штука селективная
источник

AK

Aleksey Kluchnikov in ErlangRus
но код я откопирую себе :)
источник

AK

Aleksey Kluchnikov in ErlangRus
а да, точно, все правильно, пид же контролится
источник

AK

Aleksey Kluchnikov in ErlangRus
нет ошибки
источник