Copioincollo un pezzettino di codice per la gestione dei messaggi all'utente,

solo per dare un'idea di cosa assomiglia.
monitor e' l'oggetto che gestisce le notificazioni e viene passato
dove serve nel costruttore.

I vari possibili eventi sono sealed classes immutabili.


Uberto

ps. nota che sono in team con Nat Pryce, quindi anche se il suo stile
e' cambiato molto, ci sono ancora molte cose di GOOS. :)

    receivedMessage.toHttpForwardMessage()
        .onEach { message ->
            val result = relay.forward(message)
            when (result) {
                Success                                 -> {
                    channel.basicAck(envelope.deliveryTag, false)
                    monitor.notify(ProcessedMessage(messageId, correlationId))
                }
                is Rejected                             -> {
                    val event = ServerRejectedMessage(messageId,
correlationId, result)
                    monitor.notify(event)
                    deadLetter(messageId, correlationId, envelope, event)
                }
                is ServerFailed, is CommunicationFailed -> {
                    retryOrGiveUp(messageId, correlationId, body,
envelope, properties, result)
                }
            }.exhaustive
        }
        .orElse { errorCode ->
            val event = FailedToParseMessage(messageId, correlationId,
errorCode)
            monitor.notify(event)
            deadLetter(messageId, correlationId, envelope, event)
        }


On Fri, 9 Nov 2018 at 15:04, Roberto Franchini [email protected]
[it-torino-java-jug] <[email protected]> wrote:

>
>
>
>
> On Fri, Nov 9, 2018 at 2:45 PM Uberto Barbini [email protected]
> [it-torino-java-jug] <[email protected]> wrote:
>
>>
>>
>> si scusa non sono molto sveglio questa mattina: il server http e
>> httpclient hanno un filtro che logga (sempre con eventi) tutto in entrata e
>> uscita, su tutti i ms, così possiamo fare tracing ecc.
>> probabilmente tu hai lo stesso.
>>
>> intendevo comunque che non abbiamo log.debug "sto per fare questo" /
>> "finito di fare questo" sparsi per il codice.
>>
>>
> Ok.
> Hai uno spezzone di codice/pseudo codice o un articolo/paper che spiega
> questo pattern architetturale?
> Mi ricordo che avevo letto qualcosa di simile su GOOS anni fa, ma non lo
> avevo "interiorizzato".
> Quindi sono fermo a log.
> FRANK
> --
> Roberto Franchini
> "The impossible is inevitable"
> https://github.com/robfrank/
> https://twitter.com/robfrankie
> https://www.linkedin.com/in/robfrank
> 
>

Reply via email to