@@ -252,7 +252,7 @@ def _dispatch_callback_event(self):
252
252
if not callback_info :
253
253
logger .error ("No callback for callback_id:%s" , event ['task_id' ])
254
254
return
255
- callback , mutex = callback_info
255
+ callback , mutex , page_id = callback_info
256
256
257
257
@wraps (callback )
258
258
def run (callback ):
@@ -270,7 +270,7 @@ def run(callback):
270
270
else :
271
271
t = threading .Thread (target = run , kwargs = dict (callback = callback ),
272
272
daemon = True )
273
- self .register_thread ( t )
273
+ self ._register_thread ( t , page_id )
274
274
t .start ()
275
275
276
276
def register_callback (self , callback , serial_mode = False ):
@@ -285,7 +285,7 @@ def register_callback(self, callback, serial_mode=False):
285
285
286
286
self ._activate_callback_env ()
287
287
callback_id = 'CB-%s-%s' % (get_function_name (callback , 'callback' ), random_str (10 ))
288
- self .callbacks [callback_id ] = (callback , serial_mode )
288
+ self .callbacks [callback_id ] = (callback , serial_mode , self . get_page_id () )
289
289
return callback_id
290
290
291
291
def register_thread (self , t : threading .Thread ):
@@ -294,10 +294,16 @@ def register_thread(self, t: threading.Thread):
294
294
295
295
:param threading.Thread thread: 线程对象
296
296
"""
297
+ return self ._register_thread (t )
298
+
299
+ def _register_thread (self , t : threading .Thread , page_id = None ):
300
+ if page_id is None :
301
+ page_id = self .get_page_id ()
297
302
self .threads .append (t ) # 保存 registered thread,用于主任务线程退出后等待注册线程结束
298
303
self .thread2session [id (t )] = self # 用于在线程内获取会话
299
304
event_mq = queue .Queue (maxsize = self .event_mq_maxsize ) # 线程内的用户事件队列
300
305
self .task_mqs [self ._get_task_id (t )] = event_mq
306
+ self .push_page (page_id , task_id = self ._get_task_id (t ))
301
307
302
308
def need_keep_alive (self ) -> bool :
303
309
# if callback thread is activated, then the session need to keep alive
0 commit comments