File tree 1 file changed +26
-2
lines changed
1 file changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -2,11 +2,13 @@ package sky
2
2
3
3
import (
4
4
"context"
5
+ "errors"
5
6
"flag"
6
7
"fmt"
7
8
"net/http"
8
9
"os"
9
10
"text/tabwriter"
11
+ "time"
10
12
11
13
"github.com/WiFeng/go-sky/config"
12
14
"github.com/WiFeng/go-sky/helper"
@@ -120,9 +122,31 @@ func LoadAppConfig(conf interface{}) error {
120
122
return LoadConfig ("app" , conf )
121
123
}
122
124
125
+ func safelyDo (f func ()) (err error ) {
126
+ defer func () {
127
+ if panicErr := recover (); panicErr != nil {
128
+ log .Errorw (context .Background (), "panic error" , "err" , panicErr )
129
+ err = errors .New ("panic error" )
130
+ }
131
+ }()
132
+ f ()
133
+ return
134
+ }
135
+
123
136
// RegisterTask ...
124
- func RegisterTask (f func (), df func ()) {
125
- go f ()
137
+ func RegisterTask (f func (), df func (), sync bool ) {
138
+ if sync {
139
+ if safelyDo (f ) != nil {
140
+ log .Panicf (context .Background (), "panic error" )
141
+ }
142
+ } else {
143
+ for {
144
+ go safelyDo (f )
145
+ time .Sleep (60 * time .Second )
146
+ }
147
+
148
+ }
149
+
126
150
helper .AddDeferFunc (df )
127
151
}
128
152
You can’t perform that action at this time.
0 commit comments