Documentation ¶
Index ¶
Constants ¶
const ( StartFlowType = "start_flow" SendBroadcastType = "send_broadcast" SendBroadcastBatchType = "send_broadcast_batch" FireCampaignEventType = "fire_campaign_event" HandleEvent = "handle_event" )
task types
const BatchQueue = "batch"
const HandlerQueue = "handler"
Variables ¶
This section is empty.
Functions ¶
func AddInitFunction ¶
func AddInitFunction(initFunc InitFunction)
AddInitFunction adds an init function that will be called on startup
func AddTaskFunction ¶
func AddTaskFunction(taskType string, taskFunc TaskFunction)
AddTaskFunction adds an task function that will be called for a type of task
Types ¶
type Foreman ¶
type Foreman struct {
// contains filtered or unexported fields
}
Foreman takes care of managing our set of sending workers and assigns msgs for each to send
func NewForeman ¶
NewForeman creates a new Foreman for the passed in server with the number of max senders
func (*Foreman) Assign ¶
func (f *Foreman) Assign()
Assign is our main loop for the Foreman, it takes care of popping the next outgoing task from our backend and assigning them to workers
type InitFunction ¶
InitFunction is a function that will be called when mailroom starts
type Mailroom ¶
type Mailroom struct { Config *config.Config DB *sqlx.DB RP *redis.Pool Quit chan bool CTX context.Context Cancel context.CancelFunc WaitGroup *sync.WaitGroup // contains filtered or unexported fields }
Mailroom is a service for handling RapidPro events
func NewMailroom ¶
NewMailroom creates and returns a new mailroom instance
type TaskFunction ¶
TaskFunction is the function that will be called for a type of task
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
Worker is our type for a single goroutine that is handling queued events