Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
coroutine-timer支持如下工作:
|
||||
定时触发设定的回调,最小精度秒级
|
||||
|
||||
## 使用方式
|
||||
|
||||
### 增加回调
|
||||
|
||||
> 1. 导入包
|
||||
> 2. 调用AddTimerx添加定时回调,传入相关参数
|
||||
|
||||
ps:
|
||||
> 1. AddTimer1,AddTimer2,AddTimer3是内部自动生成的id,内部保证唯一性。外部如果后续要删除该添加的timer,需要持有返回的id信息
|
||||
> 2. AddTimer4 需要外部传入id,外部需要保证id的唯一性。并且这个方法会在内部校验id是否已经存在,所以性能上会比其他AddTimer方法慢
|
||||
|
||||
### 删除回调
|
||||
|
||||
```go
|
||||
DeleteTimer(id)
|
||||
```
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"goutil/mathUtil"
|
||||
"goutil/stringUtil"
|
||||
)
|
||||
|
||||
var (
|
||||
wg sync.WaitGroup
|
||||
)
|
||||
|
||||
func init() {
|
||||
wg.Add(1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
playerMgr := newPlayerMgr()
|
||||
|
||||
// insert
|
||||
go func() {
|
||||
for {
|
||||
id := stringUtil.GetNewGUID()
|
||||
name := fmt.Sprintf("Hero_%s", id)
|
||||
obj := newPlayer(id, name)
|
||||
playerMgr.insert(obj)
|
||||
|
||||
insert(obj)
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
}()
|
||||
|
||||
// update
|
||||
go func() {
|
||||
for {
|
||||
obj := playerMgr.randomSelect()
|
||||
if obj == nil {
|
||||
continue
|
||||
}
|
||||
suffix := mathUtil.GetRand().GetRandInt(1000)
|
||||
newName := fmt.Sprintf("Hero_%d", suffix)
|
||||
obj.resetName(newName)
|
||||
|
||||
update(obj)
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
}()
|
||||
|
||||
// delete
|
||||
go func() {
|
||||
for {
|
||||
obj := playerMgr.randomSelect()
|
||||
if obj == nil {
|
||||
continue
|
||||
}
|
||||
playerMgr.delete(obj)
|
||||
|
||||
clear(obj)
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
}()
|
||||
|
||||
// errorFile
|
||||
go func() {
|
||||
for {
|
||||
time.Sleep(1 * time.Hour)
|
||||
id := stringUtil.GetNewGUID()
|
||||
name := fmt.Sprintf("Hero_%s%s", id, id)
|
||||
obj := newPlayer(id, name)
|
||||
playerMgr.insert(obj)
|
||||
print("errorFile")
|
||||
|
||||
insert(obj)
|
||||
}
|
||||
|
||||
}()
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
Reference in New Issue
Block a user