|
@@ -1,10 +1,11 @@
|
|
package p
|
|
package p
|
|
|
|
|
|
import (
|
|
import (
|
|
- util "app.yhyue.com/moapp/jybase/common"
|
|
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
|
+ util "app.yhyue.com/moapp/jybase/common"
|
|
|
|
+
|
|
"github.com/donnie4w/go-logger/logger"
|
|
"github.com/donnie4w/go-logger/logger"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -129,3 +130,22 @@ func (t *timeTask) Month() (int64, int64) {
|
|
endDate := startDate.AddDate(0, 1, -1)
|
|
endDate := startDate.AddDate(0, 1, -1)
|
|
return startDate.Unix(), endDate.Unix()
|
|
return startDate.Unix(), endDate.Unix()
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+//执行每小时任务
|
|
|
|
+func (t *timeTask) RunEveryHour(duration int64, f func()) {
|
|
|
|
+ now := time.Now()
|
|
|
|
+ go VarTimeTask.RunInTimeLoop("执行每小时任务", HourFormat(now.Hour()), HourFormat(now.Hour()+1), duration, true, false, nil, func() {
|
|
|
|
+ f()
|
|
|
|
+ })
|
|
|
|
+ nextHour := time.Date(now.Year(), now.Month(), now.Day(), now.Hour()+1, 0, 0, 0, time.Local)
|
|
|
|
+ ticker := time.NewTicker(nextHour.Sub(now))
|
|
|
|
+ for {
|
|
|
|
+ select {
|
|
|
|
+ case <-ticker.C:
|
|
|
|
+ go VarTimeTask.RunInTimeLoop("执行每小时任务", HourFormat(time.Now().Hour()), HourFormat(time.Now().Hour()+1), duration, true, false, nil, func() {
|
|
|
|
+ f()
|
|
|
|
+ })
|
|
|
|
+ ticker.Reset(time.Hour)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|