
commit a1a37d335a8e89ac89d85c00c8585d3fc02e064a Author: Josh Baker <joshbaker77@gmail.com> Date: Thu Oct 5 07:36:54 2017 -0700 use symlink instead of copy commit 96399c2c92620f633611c778e5473200bfd48d41 Author: Josh Baker <joshbaker77@gmail.com> Date: Thu Oct 5 07:19:26 2017 -0700 use dep for vendoring
31 lines
889 B
Markdown
31 lines
889 B
Markdown
batcher
|
|
=======
|
|
|
|
[](https://travis-ci.org/eapache/go-resiliency)
|
|
[](https://godoc.org/github.com/eapache/go-resiliency/batcher)
|
|
|
|
The batching resiliency pattern for golang.
|
|
|
|
Creating a batcher takes two parameters:
|
|
- the timeout to wait while collecting a batch
|
|
- the function to run once a batch has been collected
|
|
|
|
You can also optionally set a prefilter to fail queries before they enter the
|
|
batch.
|
|
|
|
```go
|
|
b := batcher.New(10*time.Millisecond, func(params []interface{}) error {
|
|
// do something with the batch of parameters
|
|
return nil
|
|
})
|
|
|
|
b.Prefilter(func(param interface{}) error {
|
|
// do some sort of sanity check on the parameter, and return an error if it fails
|
|
return nil
|
|
})
|
|
|
|
for i := 0; i < 10; i++ {
|
|
go b.Run(i)
|
|
}
|
|
```
|