package mailer import ( domain "RenewCMS/internal/domain/mail" "log" ) type AsyncDispatcher struct{} func NewAsyncDispatcher() *AsyncDispatcher { return &AsyncDispatcher{} } func (a *AsyncDispatcher) Dispatch(job func()) { go func() { defer func() { if recovered := recover(); recovered != nil { log.Println("panic in a background mail job:", recovered) } }() job() }() } var _ domain.Dispatcher = &AsyncDispatcher{}