Files
RenewCMS/internal/infrastructure/mailer/asyncDispatcher.go
T

26 lines
443 B
Go

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{}