Skip to content

Commit d44eee3

Browse files
feat(config): expose mailman workers
1 parent e1079b0 commit d44eee3

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,11 @@ rules:
219219
expression: or (eq .Message.Subject "cam-1") (eq .Message.Subject "cam-2")
220220
endpoints:
221221
- console_endpoint
222+
223+
# Mailman sends envelopes to endpoints by matching rules
224+
mailman:
225+
# Number of concurrent workers
226+
workers: 1
222227
```
223228

224229
## Templates

cmd/smtpbridge/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func run(flags *flag.FlagSet) lieut.Executor {
158158
return nil
159159
}))
160160

161-
for i := 1; i <= cfg.MailmanCount; i++ {
161+
for i := 1; i <= cfg.MailmanWorkers; i++ {
162162
// Mailman
163163
mailman := mailman.New(i, app, bus, fileStore, cfg.EndpointFactory)
164164
super.Add(mailman)

config/config.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type Config struct {
4040
HealthcheckURL string
4141
HealthcheckInterval time.Duration
4242
HealthcheckStartup bool
43-
MailmanCount int
43+
MailmanWorkers int
4444
HTTPDisable bool
4545
HTTPAddress string
4646
HTTPPort uint16
@@ -69,6 +69,7 @@ type Raw struct {
6969
HealthcheckURL string `koanf:"healthcheck.url"`
7070
HealthcheckInterval string `koanf:"healthcheck.interval"`
7171
HealthcheckStartup bool `koanf:"healthcheck.startup"`
72+
MailmanWorkers uint `koanf:"mailman.workers"`
7273
SMTPDisable bool `koanf:"smtp.disable"`
7374
SMTPHost string `koanf:"smtp.host"`
7475
SMTPPort uint16 `koanf:"smtp.port"`
@@ -114,6 +115,7 @@ var RawDefault = struct {
114115
SMTPMaxPayloadSize string `koanf:"smtp.max_payload_size"`
115116
HTTPPort uint16 `koanf:"http.port"`
116117
RetentionTraceAge string `koanf:"retention.trace_age"`
118+
MailmanWorkers int `koanf:"mailman.workers"`
117119
// IMAPPort uint16 `koanf:"imap.port"`
118120
}{
119121
HealthcheckInterval: "5m",
@@ -124,6 +126,7 @@ var RawDefault = struct {
124126
RetentionTraceAge: "168h",
125127
SMTPPort: 1025,
126128
HTTPPort: 8080,
129+
MailmanWorkers: 1,
127130
// IMAPPort: 10143,
128131
}
129132

@@ -146,6 +149,8 @@ func WithFlagSet(flags *flag.FlagSet) *flag.FlagSet {
146149
flags.String("healthcheck-interval", "", flagUsageString(RawDefault.HealthcheckInterval, "Healthcheck interval between each fetch."))
147150
flags.Bool("healthcheck-startup", false, flagUsageBool(false, "Healthcheck fetch on startup."))
148151

152+
flags.Int("mailman-workers", 0, flagUsageInt(int(RawDefault.MailmanWorkers), "Number of mailman workers."))
153+
149154
flags.Bool("smtp-disable", false, flagUsageBool(false, "Disable SMTP server."))
150155
flags.String("smtp-host", "", flagUsageString("", "SMTP host address to listen on."))
151156
flags.Int("smtp-port", 0, flagUsageInt(int(RawDefault.SMTPPort), "SMTP port to listen on."))
@@ -340,7 +345,7 @@ func (p Parser) Parse(raw Raw) (Config, error) {
340345
HealthcheckURL: raw.HealthcheckURL,
341346
HealthcheckInterval: healthcheckInterval,
342347
HealthcheckStartup: raw.HealthcheckStartup,
343-
MailmanCount: 1,
348+
MailmanWorkers: int(raw.MailmanWorkers),
344349
Debug: raw.Debug,
345350
TimeHourFormat: timeHourFormat,
346351
DatabasePath: databasePath,

0 commit comments

Comments
 (0)