Como gravar um log de itens de um buffer usando um endpoint em REST?

32 views
Skip to first unread message

Alexsandro

unread,
Jan 24, 2013, 9:53:08 AM1/24/13
to dotnetar...@googlegroups.com
É o seguinte, estou com um problema de notificar um serviço remoto atravez da modificação de um buffer( Dictionary em C# ).

Minha intenção é que quando este objeto for inserido ou removido um item, notifica um serviço remoto em REST, so que estou precupado pois o ato de inserir não pode falhar devido a chamada do endpoint, talvez eu tenha que remover a notificação/chamada dentro do metodo de adicionar e usar outros meios para escutar o buffer.

Estou confuso, ja pensei em aplicar o design patter Observer e State mas percebi que vai fugir um pouco da essência deles, cheguei até dar uma olhada no pattern Gateway mostrado no livro PEAA, mas ainda nao tenho certeza.


Alguem tem alguma dica a dizer? Obrigado.

Breno Ferreira

unread,
Jan 24, 2013, 2:00:18 PM1/24/13
to dotnetar...@googlegroups.com
Acho que com Rx voce consegue fazer isso bem facilmente.
Criei um gist com uma implementação de como criar uma ObservableCollection https://gist.github.com/4626423.
Não está completa nem é das melhores implementações do mundo, mas dá uma ideia de como proceder, e para fazer com Dictionary, não é tão complicado.

Na BCL tem uma implementação de ObservableCollection (http://msdn.microsoft.com/en-us/library/ms668604.aspx), mas é baseada no INotifyPropertyChanged, que eu, particularmente, não gosto.

Abs

Breno Ferreira
Twitter: @breno_ferreira
Blog: http://brenoferreira.wordpress.com



Date: Thu, 24 Jan 2013 06:53:08 -0800
From: bagu...@gmail.com
To: dotnetar...@googlegroups.com
Subject: [dotnetarchitects] Como gravar um log de itens de um buffer usando um endpoint em REST?
--
--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br
 
 

Alexsandro

unread,
Jan 24, 2013, 2:21:11 PM1/24/13
to dotnetar...@googlegroups.com
Obrigado por responder Breno, achava que ninguem iria responder por ser uma pergunta diferente e que talvez esteja implementando algo onde alguem conhece forma melhor de tratar/gerenciar.

Este seu exemplo proposto me parece com pattern Observer ne? onde tem que notificar todos participantes....

Esta ideia ai permite ter varios observadores no meu caso quem vai observar o buffer é apenas um participante e este participante meu é um recurso nao gerenciavel por depender de infrainstrutura de rede/internet para gravar o "log".

Se eu aderir sua proposta eu vou alterar umas coisas como metodo OnNext seria assincrono para não impactar o metodo Insert, mas se ocorrer um Exception no OnNext talvez eu devo tentar mais tarde tenta executa-lo para isto pensei usar uma Fila.


Alguem tem mais alguma dica?

Breno Ferreira

unread,
Jan 24, 2013, 2:32:19 PM1/24/13
to dotnetar...@googlegroups.com
Sim, o Observer Pattern te possibilita  ter n observers.
Dê uma olhada no Intro to Rx (http://www.introtorx.com/). Lá tem várias dicas para Exception Handling e também para o uso de Schedulers para facilitar assincronia e/ou concorrencia.

Abs

Breno Ferreira
Twitter: @breno_ferreira
Blog: http://brenoferreira.wordpress.com



Date: Thu, 24 Jan 2013 11:21:11 -0800
From: bagu...@gmail.com
To: dotnetar...@googlegroups.com
Subject: Re: [dotnetarchitects] Como gravar um log de itens de um buffer usando um endpoint em REST?

Marcelo Oliveira

unread,
Feb 12, 2013, 10:36:49 PM2/12/13
to dotnetar...@googlegroups.com
Não sei se entendi direito o seu problema, mas talvez isso possa te ajudar:
Reply all
Reply to author
Forward
0 new messages