zitadel/cmd/setup/river_queue_repeatable.go
Silvan 444f682e25
refactor(notification): use new queue package (#9360)
# Which Problems Are Solved

The recently introduced notification queue have potential race conditions.

# How the Problems Are Solved

Current code is refactored to use the queue package, which is safe in
regards of concurrency.

# Additional Changes

- the queue is included in startup
- improved code quality of queue

# Additional Context

- closes https://github.com/zitadel/zitadel/issues/9278
2025-02-27 11:49:12 +01:00

29 lines
627 B
Go

package setup
import (
"context"
"github.com/zitadel/zitadel/internal/database"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/queue"
)
type RiverMigrateRepeatable struct {
client *database.DB
}
func (mig *RiverMigrateRepeatable) Execute(ctx context.Context, _ eventstore.Event) error {
if mig.client.Type() != "postgres" {
return nil
}
return queue.NewMigrator(mig.client).Execute(ctx)
}
func (mig *RiverMigrateRepeatable) String() string {
return "repeatable_migrate_river"
}
func (f *RiverMigrateRepeatable) Check(lastRun map[string]interface{}) bool {
return true
}