Как правильно остановить асинхронный процесс в python

#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?

Спасибо