@@ -252,7 +252,7 @@ def _dispatch_callback_event(self):
252252 if not callback_info :
253253 logger .error ("No callback for callback_id:%s" , event ['task_id' ])
254254 return
255- callback , mutex = callback_info
255+ callback , mutex , page_id = callback_info
256256
257257 @wraps (callback )
258258 def run (callback ):
@@ -270,7 +270,7 @@ def run(callback):
270270 else :
271271 t = threading .Thread (target = run , kwargs = dict (callback = callback ),
272272 daemon = True )
273- self .register_thread ( t )
273+ self ._register_thread ( t , page_id )
274274 t .start ()
275275
276276 def register_callback (self , callback , serial_mode = False ):
@@ -285,7 +285,7 @@ def register_callback(self, callback, serial_mode=False):
285285
286286 self ._activate_callback_env ()
287287 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 () )
289289 return callback_id
290290
291291 def register_thread (self , t : threading .Thread ):
@@ -294,10 +294,16 @@ def register_thread(self, t: threading.Thread):
294294
295295 :param threading.Thread thread: 线程对象
296296 """
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 ()
297302 self .threads .append (t ) # 保存 registered thread,用于主任务线程退出后等待注册线程结束
298303 self .thread2session [id (t )] = self # 用于在线程内获取会话
299304 event_mq = queue .Queue (maxsize = self .event_mq_maxsize ) # 线程内的用户事件队列
300305 self .task_mqs [self ._get_task_id (t )] = event_mq
306+ self .push_page (page_id , task_id = self ._get_task_id (t ))
301307
302308 def need_keep_alive (self ) -> bool :
303309 # if callback thread is activated, then the session need to keep alive
0 commit comments