Я создаю 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