README.md
Usage
buildCommands := func() Executable {
var (
modifyDatabase CommandRunner = func() error { return nil }
sendEvents CommandRunner = func() error { return nil }
)
var (
modifyDatabaseCommand = NewCommand("Modify database", modifyDatabase)
sendMessagesCommand = NewCommand("Send events", sendEvents)
)
return CommandList{*modifyDatabaseCommand, *sendMessagesCommand}
}
runCommands := func(commands Executable) Executable {
var (
beginDb BeginTransaction = func() error { return nil }
commitDb CommitTransaction = func() error { return nil }
rollbackDb RollbackTransaction = func() error { return nil }
)
var (
beginMessaging BeginTransaction = func() error { return nil }
commitMessaging CommitTransaction = func() error { return nil }
rollbackMessaging RollbackTransaction = func() error { return nil }
)
var (
messagingTransaction = NewTransaction("Messaging transaction", beginMessaging, rollbackMessaging, commitMessaging, commands)
dbTransaction = NewTransaction("Database transaction", beginDb, rollbackDb, commitDb, messagingTransaction)
)
return dbTransaction
}
runCommands(buildCommands())
Running tests
go test -v ./...
or
ginkgo -r
Via docker
docker run --rm -it $(docker build -q .) go test -v ./...
Описание
Transactional layer for golang. Can nest few transactions (messaging + db + etc...) and run closure-like command inside of them.
Конвейеры
0 успешных
0 с ошибкой