machinery-plugins/README.md

52 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# machinery-plugins
This project is intended to provide multi broker, lock, backend for the [RichardKnop/machinery](https://github.com/RichardKnop/machinery) library. About
Machinery is an asynchronous task queue/job queue based on distributed message passing. This plugins library offers additional functionalities and tools to help you better utilize and customize Machinery.
## Features
This library provides the following features:
- `Brokers`: add etcd / mysql
- `Locks` add etcd / mysql
- `Backends`: add etcd / mysql
you can combine whatever you want
## Quick Start
Install the library:
```
go get git.ifooth.com/common/machinery-plugins@latest
```
Import the library in your code and use it to create tasks:
```go
import (
"github.com/RichardKnop/machinery/v2"
redisbackend "github.com/RichardKnop/machinery/v2/backends/redis"
eagerlock "github.com/RichardKnop/machinery/v2/locks/eager"
etcdbroker "git.ifooth.com/common/machinery-plugins/brokers/etcd"
)
func main() {
// Create server instance
// broker := redisbroker.NewGR(cnf, []string{"localhost:6379"}, 1)
broker, err := etcdbroker.New(cnf, "http://127.0.0.1:2379")
if err != nil {
return nil, err
}
lock := eagerlock.New()
backend := redisbackend.NewGR(cnf, []string{"localhost:6379"}, 3)
server := machinery.NewServer(cnf, broker, backend, lock)
}
```
## Contributing
We welcome contributions in any form! If you have any issues, suggestions, or wish to add new features, let us know by creating an issue or pull request.
## License
machinery-plugins is based on the Apache 2.0 protocol. Please refer to [LICENSE](./LICENSE) for details.