Documentation
¶
Index ¶
- Constants
- Variables
- type SQLServer
- func (s *SQLServer) Add(ctx context.Context, evt *outboxer.OutboxMessage) error
- func (s *SQLServer) AddWithinTx(ctx context.Context, evt *outboxer.OutboxMessage, ...) error
- func (s *SQLServer) Close() error
- func (s *SQLServer) GetEvents(ctx context.Context, batchSize int32) ([]*outboxer.OutboxMessage, error)
- func (s *SQLServer) Remove(ctx context.Context, dispatchedBefore time.Time, batchSize int32) error
- func (s *SQLServer) SetAsDispatched(ctx context.Context, id int64) error
Examples ¶
Constants ¶
View Source
const (
// DefaultEventStoreTable is the default table name.
DefaultEventStoreTable = "event_store"
)
Variables ¶
View Source
var ( // ErrLocked is used when we can't acquire an explicit lock. ErrLocked = errors.New("can't acquire lock") // ErrNoDatabaseName is used when the database name is blank. ErrNoDatabaseName = errors.New("no database name") // ErrNoSchema is used when the schema name is blank. ErrNoSchema = errors.New("no schema") )
Functions ¶
This section is empty.
Types ¶
type SQLServer ¶
type SQLServer struct { SchemaName string DatabaseName string EventStoreTable string // contains filtered or unexported fields }
SQLServer implementation of the data store.
Example ¶
package main import ( "context" "database/sql" "fmt" "os" "github.com/artsv79/outboxer/storage/sqlserver" ) func main() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() db, err := sql.Open("sqlserver", os.Getenv("DS_DSN")) if err != nil { fmt.Printf("failed to connect to SQLServer: %s", err) return } ds, err := sqlserver.WithInstance(ctx, db) if err != nil { fmt.Printf("failed to setup the data store: %s", err) return } defer ds.Close() }
Output:
func WithInstance ¶
WithInstance creates a SQLServer data store with an existing db connection.
func (*SQLServer) AddWithinTx ¶
func (s *SQLServer) AddWithinTx(ctx context.Context, evt *outboxer.OutboxMessage, fn func(outboxer.ExecerContext) error) error
AddWithinTx creates a transaction and then tries to execute anything within it.
func (*SQLServer) GetEvents ¶
func (s *SQLServer) GetEvents(ctx context.Context, batchSize int32) ([]*outboxer.OutboxMessage, error)
GetEvents retrieves all the relevant events.
Click to show internal directories.
Click to hide internal directories.