Skip to content

Commit 16624a9

Browse files
committed
✏️ 修复 manager 定时器错误
1 parent 58e075e commit 16624a9

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

plugin_manager/timer/timer.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,19 @@ func (c *Clock) RegisterTimer(ts *Timer, save bool) bool {
7878
c.entries[key] = eid
7979
c.entmu.Unlock()
8080
if save {
81-
err = c.AddTimer(ts)
81+
err = c.AddTimerIntoDB(ts)
82+
}
83+
if err == nil {
84+
err = c.AddTimerIntoMap(ts)
8285
}
8386
return err == nil
8487
}
8588
ts.Alert = err.Error()
8689
} else {
8790
if save {
88-
_ = c.AddTimer(ts)
91+
_ = c.AddTimerIntoDB(ts)
8992
}
93+
_ = c.AddTimerIntoMap(ts)
9094
for ts.En() {
9195
nextdate := ts.nextWakeTime()
9296
sleepsec := time.Until(nextdate)
@@ -161,15 +165,22 @@ func (c *Clock) GetTimer(key uint32) (t *Timer, ok bool) {
161165
return
162166
}
163167

164-
// AddTimer 添加定时器
165-
func (c *Clock) AddTimer(t *Timer) (err error) {
168+
// AddTimerIntoDB 添加定时器
169+
func (c *Clock) AddTimerIntoDB(t *Timer) (err error) {
166170
c.timersmu.Lock()
167-
(*c.timers)[t.ID] = t
168171
err = c.db.Insert("timer", t)
169172
c.timersmu.Unlock()
170173
return
171174
}
172175

176+
// AddTimerIntoMap 添加定时器到缓存
177+
func (c *Clock) AddTimerIntoMap(t *Timer) (err error) {
178+
c.timersmu.Lock()
179+
(*c.timers)[t.ID] = t
180+
c.timersmu.Unlock()
181+
return
182+
}
183+
173184
func (c *Clock) loadTimers(db *sql.Sqlite) {
174185
c.db = db
175186
err := c.db.Create("timer", &Timer{})

plugin_manager/timer/timer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestNextWakeTime(t *testing.T) {
2727
func TestClock(t *testing.T) {
2828
db := &sql.Sqlite{DBPath: "test.db"}
2929
c := NewClock(db)
30-
c.AddTimer(GetFilledTimer([]string{"", "12", "-1", "12", "0", "", "test"}, 0, 0, false))
30+
c.AddTimerIntoDB(GetFilledTimer([]string{"", "12", "-1", "12", "0", "", "test"}, 0, 0, false))
3131
t.Log(c.ListTimers(0))
3232
t.Fail()
3333
}

0 commit comments

Comments
 (0)