@@ -19,12 +19,22 @@ type Client struct {
1919 parallel bool
2020 sync.Mutex
2121 opMutex sync.Mutex
22+ wd WatchDog
2223}
2324
24- func NewClient (address string , parallel bool ) * Client {
25+ type WatchDog interface {
26+ Mark (address string )
27+ UnMark (address string )
28+ }
29+
30+ func NewClient (address string , parallel bool , wd WatchDog , enableWatchDog bool ) * Client {
31+ if ! enableWatchDog {
32+ wd = nil
33+ }
2534 return & Client {
2635 address : address ,
2736 parallel : parallel ,
37+ wd : wd ,
2838 }
2939}
3040
@@ -79,6 +89,10 @@ func (c *Client) Embeddings(ctx context.Context, in *pb.PredictOptions, opts ...
7989 }
8090 c .setBusy (true )
8191 defer c .setBusy (false )
92+ if c .wd != nil {
93+ c .wd .Mark (c .address )
94+ defer c .wd .UnMark (c .address )
95+ }
8296 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
8397 if err != nil {
8498 return nil , err
@@ -96,6 +110,10 @@ func (c *Client) Predict(ctx context.Context, in *pb.PredictOptions, opts ...grp
96110 }
97111 c .setBusy (true )
98112 defer c .setBusy (false )
113+ if c .wd != nil {
114+ c .wd .Mark (c .address )
115+ defer c .wd .UnMark (c .address )
116+ }
99117 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
100118 if err != nil {
101119 return nil , err
@@ -113,6 +131,10 @@ func (c *Client) LoadModel(ctx context.Context, in *pb.ModelOptions, opts ...grp
113131 }
114132 c .setBusy (true )
115133 defer c .setBusy (false )
134+ if c .wd != nil {
135+ c .wd .Mark (c .address )
136+ defer c .wd .UnMark (c .address )
137+ }
116138 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
117139 if err != nil {
118140 return nil , err
@@ -129,6 +151,10 @@ func (c *Client) PredictStream(ctx context.Context, in *pb.PredictOptions, f fun
129151 }
130152 c .setBusy (true )
131153 defer c .setBusy (false )
154+ if c .wd != nil {
155+ c .wd .Mark (c .address )
156+ defer c .wd .UnMark (c .address )
157+ }
132158 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
133159 if err != nil {
134160 return err
@@ -164,6 +190,10 @@ func (c *Client) GenerateImage(ctx context.Context, in *pb.GenerateImageRequest,
164190 }
165191 c .setBusy (true )
166192 defer c .setBusy (false )
193+ if c .wd != nil {
194+ c .wd .Mark (c .address )
195+ defer c .wd .UnMark (c .address )
196+ }
167197 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
168198 if err != nil {
169199 return nil , err
@@ -180,6 +210,10 @@ func (c *Client) TTS(ctx context.Context, in *pb.TTSRequest, opts ...grpc.CallOp
180210 }
181211 c .setBusy (true )
182212 defer c .setBusy (false )
213+ if c .wd != nil {
214+ c .wd .Mark (c .address )
215+ defer c .wd .UnMark (c .address )
216+ }
183217 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
184218 if err != nil {
185219 return nil , err
@@ -196,6 +230,10 @@ func (c *Client) AudioTranscription(ctx context.Context, in *pb.TranscriptReques
196230 }
197231 c .setBusy (true )
198232 defer c .setBusy (false )
233+ if c .wd != nil {
234+ c .wd .Mark (c .address )
235+ defer c .wd .UnMark (c .address )
236+ }
199237 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
200238 if err != nil {
201239 return nil , err
@@ -232,6 +270,10 @@ func (c *Client) TokenizeString(ctx context.Context, in *pb.PredictOptions, opts
232270 }
233271 c .setBusy (true )
234272 defer c .setBusy (false )
273+ if c .wd != nil {
274+ c .wd .Mark (c .address )
275+ defer c .wd .UnMark (c .address )
276+ }
235277 conn , err := grpc .Dial (c .address , grpc .WithTransportCredentials (insecure .NewCredentials ()))
236278 if err != nil {
237279 return nil , err
0 commit comments