sqlserver

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

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

func WithInstance(ctx context.Context, db *sql.DB) (*SQLServer, error)

WithInstance creates a SQLServer data store with an existing db connection.

func (*SQLServer) Add

Add the message to the data store.

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) Close

func (s *SQLServer) Close() error

Close closes the db connection.

func (*SQLServer) GetEvents

func (s *SQLServer) GetEvents(ctx context.Context, batchSize int32) ([]*outboxer.OutboxMessage, error)

GetEvents retrieves all the relevant events.

func (*SQLServer) Remove

func (s *SQLServer) Remove(ctx context.Context, dispatchedBefore time.Time, batchSize int32) error

Remove removes old messages from the data store.

func (*SQLServer) SetAsDispatched

func (s *SQLServer) SetAsDispatched(ctx context.Context, id int64) error

SetAsDispatched sets one message as dispatched.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL