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.