mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-18 13:57:32 +00:00
30 lines
715 B
Go
30 lines
715 B
Go
|
package spooler
|
||
|
|
||
|
import (
|
||
|
"github.com/caos/logging"
|
||
|
"github.com/caos/zitadel/internal/eventstore"
|
||
|
"github.com/sony/sonyflake"
|
||
|
"strconv"
|
||
|
)
|
||
|
|
||
|
type Config struct {
|
||
|
Eventstore eventstore.Eventstore
|
||
|
Locker Locker
|
||
|
ViewHandlers []Handler
|
||
|
ConcurrentTasks int
|
||
|
}
|
||
|
|
||
|
func (c *Config) New() *Spooler {
|
||
|
lockID, err := sonyflake.NewSonyflake(sonyflake.Settings{}).NextID()
|
||
|
logging.Log("SPOOL-bdO56").OnError(err).Panic("unable to generate lockID")
|
||
|
|
||
|
return &Spooler{
|
||
|
handlers: c.ViewHandlers,
|
||
|
lockID: strconv.FormatUint(lockID, 10),
|
||
|
eventstore: c.Eventstore,
|
||
|
locker: c.Locker,
|
||
|
queue: make(chan *spooledHandler),
|
||
|
concurrentTasks: c.ConcurrentTasks,
|
||
|
}
|
||
|
}
|