Documentation ¶
Overview ¶
Package mysql is the implementation of the mysql data store.
Index ¶
- Constants
- Variables
- type MySQL
- func (p *MySQL) Add(ctx context.Context, evt *outboxer.OutboxMessage) error
- func (p *MySQL) AddWithinTx(ctx context.Context, evt *outboxer.OutboxMessage, ...) error
- func (p *MySQL) Close() error
- func (p *MySQL) GetEvents(ctx context.Context, batchSize int32) ([]*outboxer.OutboxMessage, error)
- func (p *MySQL) Remove(ctx context.Context, dispatchedBefore time.Time, batchSize int32) error
- func (p *MySQL) 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") )
Functions ¶
This section is empty.
Types ¶
type MySQL ¶
type MySQL struct { DatabaseName string EventStoreTable string // contains filtered or unexported fields }
MySQL is the implementation of the data store
Example ¶
package main import ( "context" "database/sql" "fmt" "os" "github.com/italolelis/outboxer/mysql" ) func main() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() db, err := sql.Open("mysql", os.Getenv("DS_DSN")) if err != nil { fmt.Printf("failed to connect to mysql: %s", err) return } ds, err := mysql.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 mysql data store with an existing db connection
func (*MySQL) AddWithinTx ¶
func (p *MySQL) 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
Click to show internal directories.
Click to hide internal directories.