Documentation
¶
Index ¶
- Variables
- func FileExists(path string) bool
- func GenRsaKey(savePath string)
- func GetPrvRsaKey(path string) []byte
- func GetPubRsaKey(path string) []byte
- func RandBytes(n int) []byte
- func RandString(n int) string
- func RsaDecrypt(ciphertext, keyBytes []byte) []byte
- func RsaEncrypt(data, keyBytes []byte) []byte
- func RsaSignWithSha256(data []byte, keyBytes []byte) []byte
- func RsaVerySignWithSha256(data, signData, keyBytes []byte) bool
- type Scheduler
- type SecretKeyType
- type Timer
- type TimingWheel
Constants ¶
This section is empty.
Variables ¶
var SecretCache = make(map[string][]byte)
Functions ¶
func GetPrvRsaKey ¶
func GetPubRsaKey ¶
func RandString ¶
func RsaSignWithSha256 ¶
RsaSignWithSha256 签名+加密
func RsaVerySignWithSha256 ¶
RsaVerySignWithSha256 验证
Types ¶
type Scheduler ¶
type Scheduler interface { // Next returns the next execution time after the given (previous) time. // It will return a zero time if no next time is scheduled. // // All times must be UTC. Next(time.Time) time.Time }
Scheduler determines the execution plan of a task.
type SecretKeyType ¶
type SecretKeyType uint8
const ( SecretKeyPrv SecretKeyType = iota //private secret SecretKeyPub )
type Timer ¶
type Timer struct {
// contains filtered or unexported fields
}
Timer represents a single event. When the Timer expires, the given task will be executed.
func (*Timer) Stop ¶
Stop prevents the Timer from firing. It returns true if the call stops the timer, false if the timer has already expired or been stopped.
If the timer t has already expired and the t.task has been started in its own goroutine; Stop does not wait for t.task to complete before returning. If the caller needs to know whether t.task is completed, it must coordinate with t.task explicitly.
type TimingWheel ¶
type TimingWheel struct {
// contains filtered or unexported fields
}
TimingWheel is an implementation of Hierarchical Timing Wheels.
func NewTimingWheel ¶
func NewTimingWheel(tick time.Duration, wheelSize int64) *TimingWheel
NewTimingWheel creates an instance of TimingWheel with the given tick and wheelSize.
func (*TimingWheel) AfterFunc ¶
func (tw *TimingWheel) AfterFunc(d time.Duration, f func()) *Timer
AfterFunc waits for the duration to elapse and then calls f in its own goroutine. It returns a Timer that can be used to cancel the call using its Stop method.
func (*TimingWheel) ScheduleFunc ¶
func (tw *TimingWheel) ScheduleFunc(s Scheduler, f func()) (t *Timer)
ScheduleFunc calls f (in its own goroutine) according to the execution plan scheduled by s. It returns a Timer that can be used to cancel the call using its Stop method.
If the caller want to terminate the execution plan halfway, it must stop the timer and ensure that the timer is stopped actually, since in the current implementation, there is a gap between the expiring and the restarting of the timer. The wait time for ensuring is short since the gap is very small.
Internally, ScheduleFunc will ask the first execution time (by calling s.Next()) initially, and create a timer if the execution time is non-zero. Afterwards, it will ask the next execution time each time f is about to be executed, and f will be called at the next execution time if the time is non-zero.
func (*TimingWheel) Stop ¶
func (tw *TimingWheel) Stop()
Stop stops the current timing wheel.
If there is any timer's task being running in its own goroutine, Stop does not wait for the task to complete before returning. If the caller needs to know whether the task is completed, it must coordinate with the task explicitly.