Documentation ¶
Index ¶
- func All(actions ...func()) func()
- func DefaultBackoff(interval time.Duration) time.Duration
- func Dump(list ...interface{}) string
- func E(args ...interface{}) []interface{}
- func EscapeGoString(s string) string
- func Exec(name string, args ...string)
- func FileExists(path string) bool
- func Mkdir(path string) error
- func MustToJSON(data interface{}) string
- func MustToJSONBytes(data interface{}) []byte
- func OutputFile(p string, data interface{}) error
- func Pause()
- func RandString(len int) string
- func ReadString(p string) (string, error)
- func Retry(ctx context.Context, s Sleeper, fn func() (stop bool, err error)) error
- func S(tpl string, params ...interface{}) string
- func SetCmdStdPipe(cmd *exec.Cmd)
- func Sleep(seconds float64)
- type IdleCounter
- type Log
- type Logger
- type Sleeper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func All ¶ added in v0.52.0
func All(actions ...func()) func()
All run all actions concurrently, returns the wait function for all actions.
func DefaultBackoff ¶ added in v0.52.0
DefaultBackoff algorithm: A(n) = A(n-1) * random[1.9, 2.1)
func EscapeGoString ¶ added in v0.62.0
EscapeGoString not using encoding like base64 or gzip because of they will make git diff every large for small change
func FileExists ¶ added in v0.52.0
FileExists checks if file exists, only for file, not for dir
func MustToJSON ¶ added in v0.52.0
func MustToJSON(data interface{}) string
MustToJSON encode data to json string
func MustToJSONBytes ¶ added in v0.52.0
func MustToJSONBytes(data interface{}) []byte
MustToJSONBytes encode data to json bytes
func OutputFile ¶ added in v0.52.0
OutputFile auto creates file if not exists, it will try to detect the data type and auto output binary, string or json
func RandString ¶ added in v0.52.0
RandString generate random string with specified string length
func ReadString ¶ added in v0.52.0
ReadString reads file as string
Types ¶
type IdleCounter ¶ added in v0.69.0
IdleCounter is similar to sync.WaitGroup but it only resolves if no jobs for specified duration.
func NewIdleCounter ¶ added in v0.69.0
func NewIdleCounter(d time.Duration) *IdleCounter
NewIdleCounter ...
func (*IdleCounter) Wait ¶ added in v0.69.0
func (de *IdleCounter) Wait(ctx context.Context)
Wait ...
type Logger ¶ added in v0.70.0
type Logger interface {
// Same as fmt.Printf
Println(...interface{})
}
Logger interface
var LoggerQuiet Logger = loggerQuiet{}
LoggerQuiet does nothing
type Sleeper ¶ added in v0.52.0
Sleeper sleeps the current gouroutine for sometime, returns the reason to wake, if ctx is done release resource
func BackoffSleeper ¶ added in v0.52.0
func BackoffSleeper(init, maxInterval time.Duration, algorithm func(time.Duration) time.Duration) Sleeper
BackoffSleeper returns a sleeper that sleeps in a backoff manner every time get called. If algorithm is nil, DefaultBackoff will be used. Set interval and maxInterval to the same value to make it a constant sleeper. If maxInterval is not greater than 0, the sleeper will wake immediately.
func CountSleeper ¶ added in v0.52.0
CountSleeper wake immediately. When counts to the max returns errors.New("max sleep count")