Skip to content

Commit 5410bcd

Browse files
author
Guy Baron
authored
golint fixes into master (#154)
* add handler metrics to bus and saga (#101) * add handler metrics to bus and saga + tests * fix build * add 0 to the default buckets to catch fast message handling * PR correction - changed latency to summary(removed bucket configuration), add registration for saga handlers * PR correction - getting logger as a param * PR correction - new line in eof * PR corrections message handler + sync.map + latency as summary * add rejected messages metric * dead letter handler should reject messages on failures and rollbacks and ack on commit success (#105) * dead letter handler should reject messages on failures and rollbacks * dead letter handler should reject messages on failures and rollbacks * dead letter handler should reject messages on failures and rollbacks * dead letter handler should reject messages on failures and rollbacks * return an error from the saga store when deleting a saga if saga can not (#110) be found In order to deal with concurrent deletes of the sage saga instance we would wan't to indicate that deleting the saga failed if the saga is not stored so callers can take proper action * Persisted timeouts (#107) * decouple transaction manager from glue * moved timeout manager to gbus/tx package * initial commit in order to support persisted timeouts * first working version of a mysql persisted timeout manager * fixing ci lint errors * refactored ensure schema of timeout manager * cleanup timeout manager when bs shuts down * fixing formatting issues * changed logging level from Info to Debug when inserting a new timeout * resusing timeouts tablename (PR review) * renamed AcceptTimeoutFunction to SetTimeoutFunction on the TimeoutManager interface (PR review) * refactored glue to implement the Logged inetrface and use the GLogged helper struct * locking timeout record before executing timeout In order to prevent having a timeout beeing executed twice due to two concurrent grabbit instances running the same service a lock (FOR UPDATE) has been placed on the timeout record in the scope of the executing transaction * Commiting the select transaction when querying for pending timeouts * feat(timeout:lock): This is done in order to reduce contention and allow for parallel processing in case of multiple grabbit instances * Enable returning a message back from the dead to the queue (#112) * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * enable sending raw messages * return to q * return to q * return to q * return to q * return dead to q * allow no retries * test - resend dead to queue * test - resend dead to queue * test - resend dead to queue * test - resend dead to queue - fixes after cr * test - resend dead to queue - fixes after cr * test - resend dead to queue - fixes after cr * added metric report on saga timeout (#114) 1) added reporting saga timeouts to the glue component 2) fixed mysql timeoutmanager error when trying to clear a timeout * Added documentation for grabbit metrics (#117) * added initial documentation for grabbit metrics * including metrics section in readme.md * fixing goreportcard issues (#118) * removed logging a warning when worker message channel returns an error (#116) * corrected saga metrics name and added to metrics documentation (#119) * corrected saga metrics name and added documentatio * corrected saga metric name * corrected typos * removed non transactional bus mode (#120) * remove fields * remove fields * go fmt and go lint error fixes to improve goreportcard (#126) * go fmt on some files * go fmt * added comments on exported types * cunsume the messages channel via ranging over the channel to prevent (#125) empty delivreies * Migrations functionality (#111) * implement migrations * implement migrations * implement migrations * implement migrations * implement migrations * migrations * migrations * migrations * migrations * migrations * migrations * migrations * fix tests error * add migrations * migrations - timeout table migration * test - resend dead to queue - fixes after cr * migraration to grabbit (use forked migrator) * remove fields * remove fields * remove fields * remove fields * sanitize migrations table name (#130) * more linting fixes for goreportcard (#129) * added metrics on deadLetterHandler, refactored HandleDeadLetter inter… (#122) * added metrics on deadLetterHandler, refactored HandleDeadLetter interface to receive new DeadLetterMessageHandler type * fix dead letter test and a build error * added documentation for DeadLetterMessageHandler, also fixed poison spelling throughout code * retrigger build * align migrations table name with grabbit convention (#140) * Improved tracing and added documentation (#142) * Support handling raw message (#138) * added call to worker.span.Finish() when exiting processMessage (#145) * bug fix - when a deadletterhandler panics grabbit fails to reject the… (#136) * bug fix - when a deadletterhandler panics grabbit fails to reject the message * bug fix - when a deadletterhandler panics grabbit fails to reject the message * BPINFRA125 - MERGE MASTER INTO BRANCH * calling channel.Cancel when worker is stopped (#149) * Handle empty body messages (#147) * fixing golint warnings from goreport card (#150) * more golint fixes (#152)
1 parent d227a86 commit 5410bcd

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

gbus/abstractions.go

+14-16
Original file line numberDiff line numberDiff line change
@@ -138,25 +138,23 @@ type Deadlettering interface {
138138
ReturnDeadToQueue(ctx context.Context, publishing *amqp.Publishing) error
139139
}
140140

141-
/*
142-
RawMessageHandling provides the ability to consume and send raq amqp messages with the transactional guarantees
143-
that the bus provides
144-
*/
141+
142+
//RawMessageHandling provides the ability to consume and send raq amqp messages with the transactional guarantees that the bus provides
145143
type RawMessageHandling interface {
146144
/*
147145
SetGlobalRawMessageHandler registers a handler that gets called for each amqp.Delivery that is delivered
148-
to the service queue.
149-
The handler will get called with a scoped transaction that is a different transaction than the ones that
150-
regular message handlers are scoped by as we want the RawMessage handler to get executed even if the amqp.Delivery
151-
can not be serialized by the bus to one of the registered schemas
152-
153-
In case a bus has both a raw message handler and regular ones the bus will first call the raw message handler
154-
and afterward will call any registered message handlers.
155-
if the global raw handler returns an error the message gets rejected and any additional
156-
handlers will not be called.
157-
You should not use the global raw message handler to drive business logic as it breaks the local transactivity
158-
guarantees grabbit provides and should only be used in specialized cases.
159-
If you do decide to use this feature try not shooting yourself in the foot.
146+
        to the service queue.
147+
        The handler will get called with a scoped transaction that is a different transaction than the ones that
148+
        regular message handlers are scoped by as we want the RawMessage handler to get executed even if the amqp.Delivery
149+
        can not be serialized by the bus to one of the registered schemas
150+
151+
        In case a bus has both a raw message handler and regular ones the bus will first call the raw message handler
152+
        and afterward will call any registered message handlers.
153+
        if the global raw handler returns an error the message gets rejected and any additional
154+
        handlers will not be called.
155+
        You should not use the global raw message handler to drive business logic as it breaks the local transactivity
156+
        guarantees grabbit provides and should only be used in specialized cases.
157+
        If you do decide to use this feature try not shooting yourself in the foot.
160158
*/
161159
SetGlobalRawMessageHandler(handler RawMessageHandler)
162160
}

gbus/bus.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,8 @@ func (b *DefaultBus) HandleDeadletter(handler RawMessageHandler) {
554554
b.registerDeadLetterHandler(handler)
555555
}
556556

557-
//HandleDeadletter implements RawMessageHandling.SetGlobalRawMessageHandler
557+
558+
//SetGlobalRawMessageHandler implements RawMessageHandling.SetGlobalRawMessageHandler
558559
func (b *DefaultBus) SetGlobalRawMessageHandler(handler RawMessageHandler) {
559560
metrics.AddHandlerMetrics(handler.Name())
560561
b.globalRawHandler = handler

gbus/saga/instance.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ func (si *Instance) invoke(exchange, routingKey string, invocation *sagaInvocati
4949
}).Info("invoking method on saga")
5050

5151
span, sctx := opentracing.StartSpanFromContext(invocation.Ctx(), methodName)
52-
// replace the original context with the conext built arround the span so we ca
52+
53+
// replace the original context with the conext built around the span so we ca
5354
// trace the saga handler that is invoked
5455
invocation.ctx = sctx
5556

tests/testMessages.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ var _ gbus.Message = &Reply2{}
99
var _ gbus.Message = &Event1{}
1010
var _ gbus.Message = &Event2{}
1111

12-
//PoisonMessage is a malformed message to test posion pill scenarios
12+
13+
//PoisonMessage is a malformed message to test poison pill scenarios
1314
type PoisonMessage struct {
1415
}
1516

0 commit comments

Comments
 (0)