forked from TrueCloudLab/frostfs-node
[#476] cmd/container: Add async handlers
Add `addContainerAsyncNotificationHandler` func that passed handler to container's worker pool similar to how it is done in reputation handlers. Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
72699b4c26
commit
91e0f4b370
1 changed files with 14 additions and 0 deletions
|
@ -138,6 +138,7 @@ func initContainerService(c *cfg) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addContainerNotificationHandler adds handler that will be executed synchronously
|
||||||
func addContainerNotificationHandler(c *cfg, sTyp string, h event.Handler) {
|
func addContainerNotificationHandler(c *cfg, sTyp string, h event.Handler) {
|
||||||
typ := event.TypeFromString(sTyp)
|
typ := event.TypeFromString(sTyp)
|
||||||
|
|
||||||
|
@ -148,6 +149,19 @@ func addContainerNotificationHandler(c *cfg, sTyp string, h event.Handler) {
|
||||||
c.cfgContainer.subscribers[typ] = append(c.cfgContainer.subscribers[typ], h)
|
c.cfgContainer.subscribers[typ] = append(c.cfgContainer.subscribers[typ], h)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addContainerAsyncNotificationHandler adds handler that will be executed asynchronously via container workerPool
|
||||||
|
func addContainerAsyncNotificationHandler(c *cfg, sTyp string, h event.Handler) {
|
||||||
|
addContainerNotificationHandler(
|
||||||
|
c,
|
||||||
|
sTyp,
|
||||||
|
event.WorkerPoolHandler(
|
||||||
|
c.cfgContainer.workerPool,
|
||||||
|
h,
|
||||||
|
c.log,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
func setContainerNotificationParser(c *cfg, sTyp string, p event.Parser) {
|
func setContainerNotificationParser(c *cfg, sTyp string, p event.Parser) {
|
||||||
typ := event.TypeFromString(sTyp)
|
typ := event.TypeFromString(sTyp)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue