@@ -12,7 +12,7 @@ import (
1212 "time"
1313
1414 "github.com/urnetwork/server"
15- // "github.com/urnetwork/server/model"
15+ "github.com/urnetwork/server/model"
1616 "github.com/urnetwork/server/router"
1717)
1818
@@ -21,6 +21,7 @@ type apiServer struct {
2121 cancel context.CancelFunc
2222 proxyDeviceManager * ProxyDeviceManager
2323 transportTls * server.TransportTls
24+ warmupCallback func (* model.ProxyClient ) error
2425 settings * ProxySettings
2526}
2627
@@ -29,13 +30,15 @@ func newApiServer(
2930 cancel context.CancelFunc ,
3031 proxyDeviceManager * ProxyDeviceManager ,
3132 transportTls * server.TransportTls ,
33+ warmupCallback func (* model.ProxyClient ) error ,
3234 settings * ProxySettings ,
3335) * apiServer {
3436 s := & apiServer {
3537 ctx : ctx ,
3638 cancel : cancel ,
3739 proxyDeviceManager : proxyDeviceManager ,
3840 transportTls : transportTls ,
41+ warmupCallback : warmupCallback ,
3942 settings : settings ,
4043 }
4144
@@ -112,6 +115,21 @@ func (self *apiServer) HandleWarmup(w http.ResponseWriter, r *http.Request) {
112115 return
113116 }
114117
118+ if self .warmupCallback != nil {
119+ proxyClient , err := model .GetProxyClient (self .ctx , proxyId )
120+ if err != nil {
121+ http .Error (w , err .Error (), http .StatusInternalServerError )
122+ return
123+ }
124+ if proxyClient != nil {
125+ err = self .warmupCallback (proxyClient )
126+ if err != nil {
127+ http .Error (w , err .Error (), http .StatusInternalServerError )
128+ return
129+ }
130+ }
131+ }
132+
115133 timeout := time .Duration (warmupRequest .TimeoutSeconds ) * time .Second
116134 ready := proxyDevice .WaitForReady (r .Context (), timeout )
117135
0 commit comments