Publisher subscribe pattern - PPCA2014/ppca_soa GitHub Wiki
PPCA_SOA disponibiliza um módulo chamado ppca_event_mq.erl para implementar o publisher/subscribe pattern. Este módulo disponibiliza as seguintes funções:
-
start/0
-
adiciona_evento/1
-
registra_interesse/2
-
notifica_evento/2
-
lista_evento/0
-
lista_interesse/0
O exemplo abaixo demonstra o funcionamento do módulo:
erl
1> ppca_event_mq:start().
true
2> ppca_event_mq:adiciona_evento(novo_aluno).
ok
3> ppca_event_mq:adiciona_evento(pre_matricula).
ok
4> ppca_event_mq:adiciona_evento(matricula_aberta).
ok
5> ppca_event_mq:adiciona_evento(matricula_encerrada).
ok
6> ppca_event_mq:adiciona_evento(semana_academica).
ok
7> ppca_event_mq:registra_interesse(novo_aluno, fun(Evento, Motivo) -> io:format("Evento: ~p, Motivo: ~p.~n", [Evento, Motivo]) end).
ok
8> ppca_event_mq:lista_evento().
[semana_academica,matricula_encerrada,matricula_aberta,
pre_matricula,novo_aluno]
9> ppca_event_mq:lista_interesse().
[{novo_aluno,#Fun<erl_eval.12.90072148>}]
10> ppca_event_mq:notifica_evento(novo_aluno, "Everton Agilar foi matriculado").
Evento: novo_aluno, Motivo: "Everton Agilar foi matriculado".
ok