Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DON ¶
type DON interface { // Thread-safe SendToNode(ctx context.Context, nodeAddress string, msg *api.Message) error }
Representation of a DON from a Handler's perspective.
type Handler ¶
type Handler interface { job.ServiceCtx // Each user request is processed by a separate goroutine, which: // 1. calls HandleUserMessage // 2. waits on callbackCh with a timeout HandleUserMessage(ctx context.Context, msg *api.Message, callbackCh chan<- UserCallbackPayload) error // Handlers should not make any assumptions about goroutines calling HandleNodeMessage HandleNodeMessage(ctx context.Context, msg *api.Message, nodeAddr string) error }
func NewHandler ¶
type RateLimiter ¶
type RateLimiter struct {
// contains filtered or unexported fields
}
func NewRateLimiter ¶
func NewRateLimiter(globalRPS float64, globalBurst int, perUserRPS float64, perUserBurst int) *RateLimiter
func (*RateLimiter) Allow ¶
func (rl *RateLimiter) Allow(user string) bool
Click to show internal directories.
Click to hide internal directories.