Discover Packages
github.com/joshqu1985/fireman
pkg
singleflight
package
Version:
v0.1.2
Opens a new window with list of versions in this module.
Published: Nov 27, 2019
License: Apache-2.0
Opens a new window with license information.
Imports: 1
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
README
¶
import (
"sync"
"sync/atomic"
"time"
"github.com/joshqu1985/fireman/pkg/singleflight"
)
// 使用示例
var g singleflight.Group
// 在一个时间段内只被调用一次
fn := func() (interface{}, error) {
return db.find().where(), nil
}
v, err := g.Do("key", fn)
if err != nil {
fmt.Println("Do error: %v", err)
}
https://github.com/golang/groupcache/tree/master/singleflight
Expand ▾
Collapse ▴
Documentation
¶
Package singleflight provides a duplicate function call suppression
mechanism.
Group represents a class of work and forms a namespace in which
units of work can be executed with duplicate suppression.
Do executes and returns the results of the given function, making
sure that only one execution is in-flight for a given key at a
time. If a duplicate comes in, the duplicate caller waits for the
original to complete and receives the same results.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.