yeq6x commited on
Commit
c465a32
·
1 Parent(s): d954860

disconnect時のcancel

Browse files
Files changed (1) hide show
  1. app.py +10 -0
app.py CHANGED
@@ -125,6 +125,16 @@ def handle_connect(auth):
125
  def handle_disconnect():
126
  global connected_clients
127
  connected_clients -= 1
 
 
 
 
 
 
 
 
 
 
128
 
129
  @app.route('/submit_task', methods=['POST'])
130
  @limiter.limit("10 per minute") # 1分間に10回までのリクエストに制限
 
125
  def handle_disconnect():
126
  global connected_clients
127
  connected_clients -= 1
128
+ # キャンセル処理:接続が切断された場合、そのクライアントに関連するタスクをキャンセル。ただし、1番目で処理中のタスクはキャンセルしない
129
+ client_ip = get_remote_address()
130
+ for task_id, task in list(active_tasks.items()):
131
+ if task.client_ip == client_ip and get_active_task_order(task_id) > 0:
132
+ task.cancel_flag = True
133
+ if task_id in task_futures:
134
+ task_futures[task_id].cancel()
135
+ del task_futures[task_id]
136
+ del active_tasks[task_id]
137
+ tasks_per_client[client_ip] = tasks_per_client.get(client_ip, 0) - 1
138
 
139
  @app.route('/submit_task', methods=['POST'])
140
  @limiter.limit("10 per minute") # 1分間に10回までのリクエストに制限