Это хорошая идея для отслеживания заданий с использованием механизма связывания в Erlang? - PullRequest
1 голос
/ 17 июля 2011

Я пишу карту уменьшения реализации, используя erlang.

Чтобы получить уведомление о том, что сопоставление полностью завершено (все данные обработаны), я создаю связь между рабочими, которые выполняют фактическое сопоставление, и «процессом менеджера», который будет захватывать сигналы EXIT от рабочих, и видит, если причина normal. Если это так, он будет считать, что задание выполнено правильно. Если нет, основываясь на Pid, он определит работу, которая потерпела неудачу, и породит другого работника для этой работы (я буду хранить книгу Pid работников). Как только EXIT сигналы с Reason = normal от всех Pid были получены, отображение полностью выполнено.

Мой вопрос: 1) это безопасно? и 2) это хорошая практика?
Кстати, рабочие места идемпотентны.

1 Ответ

5 голосов
/ 18 июля 2011

Да, этот подход пока звучит хорошо.

Но вы не должны реализовывать это самостоятельно, а вместо этого должны использовать супервизор .

Тип супервизора simple_one_for_one реализует почти то же поведение, которое вы описали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...