Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
DeliveryMQ *mqinfra.MQInfraConfig
LogMQ *mqinfra.MQInfraConfig
}
func (*Config) SetSensiblePolicyDefaults ¶
func (cfg *Config) SetSensiblePolicyDefaults()
type Infra ¶ added in v0.4.0
type Infra struct {
// contains filtered or unexported fields
}
func NewInfraWithProvider ¶ added in v0.4.0
func NewInfraWithProvider(lock Lock, provider InfraProvider) *Infra
NewInfraWithProvider creates an Infra instance with custom lock and provider (for testing)
type InfraProvider ¶ added in v0.4.0
type InfraProvider interface {
Exist(ctx context.Context) (bool, error)
Declare(ctx context.Context) error
Teardown(ctx context.Context) error
}
InfraProvider handles the actual infrastructure operations
type Lock ¶ added in v0.4.0
type Lock interface {
AttemptLock(ctx context.Context) (bool, error)
Unlock(ctx context.Context) (bool, error)
}
func NewRedisLock ¶ added in v0.4.0
func NewRedisLock(client redis.Cmdable, opts ...LockOption) Lock
NewRedisLock creates a new Redis-based distributed lock
type LockOption ¶ added in v0.4.0
type LockOption func(*redisLock)
LockOption configures a redisLock
func LockWithKey ¶ added in v0.4.0
func LockWithKey(key string) LockOption
LockWithKey sets a custom key for the lock
func LockWithTTL ¶ added in v0.4.0
func LockWithTTL(ttl time.Duration) LockOption
LockWithTTL sets a custom TTL for the lock
Click to show internal directories.
Click to hide internal directories.