Ошибки Slackbot и закрытие цикла после публикации на канале - PullRequest
0 голосов
/ 24 октября 2019

Я создаю slackbot для чтения сообщений, разбора сообщения, выполнения задания и последующей отправки на канал. В настоящее время я просто работаю над получением сообщения и размещением сообщения. Я могу получать и отправлять сообщения, однако, когда я отправляю сообщение, я получаю следующую ошибку:

File "C:\HOMEPATHS\Programs\Python\Python38\lib\asyncio\base_events.py", line 504, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

Если я не отправляю сообщение на свободный канал, цикл работает последовательно, и я могу извлекать данные несколько раз изканал без него замыкает петлю. Я не знаком с тем, как работает цикл обработки событий (довольно плохо знаком с Python), поэтому я не уверен, как не допустить его закрытия.

from slack import RTMClient

slack_token = 'MY SLACK TOKEN'

slack_rtm_client = RTMClient(token= slack_token)
sbot_channel = "holds private channel information for use later"

@slack_rtm_client.run_on(event="message")  
def commands_on_message(**payload):

data = payload['data']
web_client = payload['web_client']
if (payload['data']['channel']) == sbot_channel:
   if ('@win10bot' and ('Outlook' or 'outlook')) in data['text']:
        message = data['text']
        message_thread = data['ts']

     #this function below is process that executes then stops the loop
        web_client.chat_postMessage(
            channel=sbot_channel,
            text=f'Your Outlook password request has been called!',
            thread_ts = message_thread
            )           

slack_rtm_client.start()

Я пытаюсь постоянно зацикливаться и иметь возможность вызывать информацию из слабого канала. Я чувствую, что если я смогу закончить окончание цикла, я буду в порядке, чтобы продолжить.

Error:
Traceback (most recent call last):
  File "C:\Users\"me"\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\"me"\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\"me"\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 711, in call_soon
    self._check_closed()
  File "C:\Users\"me"\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 504, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
...