package setup import ( "context" "time" "forge.cadoles.com/cadoles/bouncer/internal/config" "forge.cadoles.com/cadoles/bouncer/internal/proxy/director" "forge.cadoles.com/cadoles/bouncer/internal/queue" "github.com/pkg/errors" ) func init() { RegisterLayer(queue.LayerType, setupQueueLayer) } func setupQueueLayer(ctx context.Context, conf *config.Config) (director.Layer, error) { adapter, err := NewQueueAdapter(ctx, conf.Redis) if err != nil { return nil, errors.WithStack(err) } options := []queue.OptionFunc{ queue.WithTemplateDir(string(conf.Layers.Queue.TemplateDir)), } if conf.Layers.Queue.DefaultKeepAlive != nil { options = append(options, queue.WithDefaultKeepAlive(time.Duration(*conf.Layers.Queue.DefaultKeepAlive))) } return queue.New( adapter, options..., ), nil }