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/artsv79/outboxer/storage/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
}
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.