#python #flask
Вопрос:
Я пытаюсь использовать пакет телемарафона для телеграмм-бота на python.
Я хочу остановить запущенный процесс в python.
Я создаю цикл в методе колбы, как это:
start_loop = asyncio.get_event_loop()
start = start_loop.create_task(startProcess())
result = await start
После этого работает метод StartProcess. Но мне нужно остановить этот процесс, когда пользователь нажал кнопку «Стоп» в браузере.
Поэтому я создал метод колбы, чтобы получить запрос на остановку от пользователя, и я попробовал этот код:
loop = asyncio.get_running_loop()
loop.stop()
Но мне это не помогло. Даже этот код запускает метод StartProcess, который все еще работает.
Вот метод запуска процесса:
async def startProcess(userList,client,target_group_entity):
n=0
for user in userList:
if user.bot == False and user.username != None:
n = 1
try:
user_to_add = await addUserToMutualContact(client,user.first_name,user.last_name,user.id,user.access_hash)
await client(InviteToChannelRequest(target_group_entity,[user_to_add]))
except PeerFloodError as e:
traceback.print_exc()
await client.disconnect()
n -= 1
return {'result':'FloodError','copied':n}
except FloodWaitError:
traceback.print_exc()
await client.disconnect()
n -= 1
return {'result':'FloodError','copied':n}
except UserPrivacyRestrictedError:
n -= 1
except:
traceback.print_exc()
n -= 1
continue
return json.dumps({'result':'SUCCESS','copied':n})
Этот метод все еще работает, даже если цикл событий остановлен.Мне нужно прервать цикл и завершить startProcess
метод сразу после того, как пользователь запросил остановку.
Как я могу остановить этот запущенный процесс в python?
Спасибо