Files
CrimsonandGitHub ad704e958b feat(polling): allow system-wide polling default to be configured via env variable (#615)
* Manage configuration of polling period in connectors manager and enable override via env variables

* Treat connector validation errors as http 4xx

* Perform strict config validation only if connector being loaded for install or update

* Add flags to configure notification outbox schedules

* Only configure outbox schedule creation in worker

* Improve manager config validation test coverage
2025-12-08 09:32:29 +00:00

48 lines
1.1 KiB
Go

package engine
import (
"context"
"time"
"github.com/formancehq/go-libs/v3/logging"
"github.com/formancehq/payments/internal/connectors"
"github.com/formancehq/payments/internal/storage"
"go.temporal.io/sdk/client"
"go.uber.org/fx"
)
func Module(
stack string,
stackPublicURL string,
debug bool,
pollingPeriodDefault time.Duration,
pollingPeriodMinimum time.Duration,
) fx.Option {
ret := []fx.Option{
fx.Provide(func(logger logging.Logger) connectors.Manager {
return connectors.NewManager(logger, debug, pollingPeriodDefault, pollingPeriodMinimum)
}),
fx.Provide(func(
logger logging.Logger,
temporalClient client.Client,
storage storage.Storage,
manager connectors.Manager,
) Engine {
return New(logger, temporalClient, storage, manager, stack, stackPublicURL)
}),
fx.Invoke(func(lc fx.Lifecycle, engine Engine) {
lc.Append(fx.Hook{
OnStart: func(ctx context.Context) error {
return engine.OnStart(ctx)
},
OnStop: func(ctx context.Context) error {
engine.OnStop(ctx)
return nil
},
})
}),
}
return fx.Options(ret...)
}