최대 재귀 깊이가 discord.py 봇 루프를 초과했습니다.

헨리

내 봇에 알림 기능이 있습니다. 미리 알림이 지금인지 확인하기 위해 10 초마다 확인하고 현재인지 확인하면 메시지를 보냅니다.

async def reminder():
    global reminderDone
    if datetime.now().replace(second = 0, microsecond=0) == datetime(2021, 1, 29, 19) and not reminderDone:
        reminderDone = True
        cnl = bot.get_channel([channel id goes here])
        await cnl.send("@everyone Reminder time")
    await asyncio.sleep(10)
    await reminder()

await reminder()에서 처음 호출 됩니다 on_ready(). 약 3 시간 후에 다음 오류가 발생합니다.

File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 333, in _run_event
  await coro(*args, **kwargs)
File "bot.py", line 21, in on_ready
  await reminder()
File "bot.py", line 36, in reminder
  await reminder()
File "bot.py", line 36, in reminder
  await reminder()
File "bot.py", line 36, in reminder
  await reminder()
[Previous line repeated 976 more times]
File "bot.py", line 35, in reminder
  await asyncio.sleep(10)
File "/app/.heroku/python/lib/python3.6/asyncio/tasks.py", line 480, in sleep
  future, result)
File "/app/.heroku/python/lib/python3.6/asyncio/base_events.py", line 564, in call_later
  timer = self.call_at(self.time() + delay, callback, *args)
File "/app/.heroku/python/lib/python3.6/asyncio/base_events.py", line 578, in call_at
  timer = events.TimerHandle(when, callback, args, self)
File "/app/.heroku/python/lib/python3.6/asyncio/events.py", line 167, in __init__
  super().__init__(callback, args, loop)
File "/app/.heroku/python/lib/python3.6/asyncio/events.py", line 110, in __init__
  if self._loop.get_debug():
RecursionError: maximum recursion depth exceeded

나는 이것이 함수가 자신을 호출하기 때문에 발생한다고 가정하지만 그것을 사용 await하고 있기 때문에 함수가 실행을 멈출 때까지 기다립니다. 코 루틴 인 await메시지 ( await cnl.send()) 를 보내는 데 필요하기 때문에 제거 할 수는 없습니다 . 재귀 오류없이 미리 알림을 확인하기 위해 루프를 영구적으로 실행하려면 어떻게해야합니까?

Łukasz Kwieciński

같은 함수를 반복해서 호출하는 대신 간단히 루프를 만들 수 있습니다.

from discord.ext import tasks

@tasks.loop(seconds=10)
async def reminder():
    global reminderDone
    if datetime.now().replace(second = 0, microsecond=0) == datetime(2021, 1, 29, 19) and not reminderDone:
        reminderDone = True
        cnl = bot.get_channel([channel id goes here])
        await cnl.send("@everyone Reminder time")


reminder.start()

참고:

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Sqlalchemy를 사용하여 최대 재귀 깊이를 초과했습니다.

분류에서Dev

내 Django 신호에서 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RecursionError : Odoo 13에서 최대 재귀 깊이를 초과했습니다.

분류에서Dev

discord 봇 discord.py를 초대 한 사람 가져 오기

분류에서Dev

RecursionError : 스레드를 사용하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

PyQt5 : RecursionError : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

범주 형 변수를 요약 할 때 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RecursionError at : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

Andrew의 곡선 : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

생성 할 때 Django 모델에서 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RuntimeError : 기본 해시 방법을 사용하여 최대 재귀 깊이를 초과했습니다.

분류에서Dev

모듈을 설치할 때 Python 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RuntimeError : DB에서 다각형 포인트를 가져 오는 동안 Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

recursionerror : skopt를 사용한 tensorflow와 비교하여 최대 재귀 깊이가 초과되었습니다.

분류에서Dev

함수는 없음을 반환하거나 "최대 재귀 깊이를 초과했습니다"라고 말합니다.

분류에서Dev

메서드 이름을 인쇄 할 때 Python 개체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

BeautifulSoup : RuntimeError : 최대 재귀 깊이 초과

분류에서Dev

Discord.py-누군가가 그를 멘션해도 봇이 대답하지 않습니다.

분류에서Dev

아름다운 수프와 파이썬. "파이썬 객체를 호출하는 동안 최대 재귀 깊이가 초과되었습니다"오류가 발생하여 재귀가있는 모든 노드를 가져올 수 없습니다.

분류에서Dev

discord.py 봇에 대한 조언이 필요합니다.

분류에서Dev

Python : 목록이있는 객체를 목록이있는 다른 객체에 추가합니다. 최대 재귀 깊이 초과

분류에서Dev

React 오류에서 최대 업데이트 깊이를 초과했습니다.

분류에서Dev

useLayoutEffect, useRef로 최대 업데이트 깊이를 초과했습니다.

분류에서Dev

Lodash 재귀 함수가 최대 스택 크기를 초과합니다.

분류에서Dev

Python Discord 봇 '이벤트 루프가 닫혔습니다'

분류에서Dev

최대 URL 길이가 C # MVC를 초과했습니다.

분류에서Dev

오류 발생 : 비교에서 최대 재귀 깊이가 초과 됨

분류에서Dev

/ person /의 RecursionError가 __instancecheck__에서 초과 된 최대 재귀 깊이

분류에서Dev

deferred.defer에 PermanentTaskFailure가 표시됨 : 최대 재귀 깊이 초과

Related 관련 기사

  1. 1

    Sqlalchemy를 사용하여 최대 재귀 깊이를 초과했습니다.

  2. 2

    내 Django 신호에서 최대 재귀 깊이를 초과했습니다.

  3. 3

    RecursionError : Odoo 13에서 최대 재귀 깊이를 초과했습니다.

  4. 4

    discord 봇 discord.py를 초대 한 사람 가져 오기

  5. 5

    RecursionError : 스레드를 사용하는 동안 최대 재귀 깊이를 초과했습니다.

  6. 6

    PyQt5 : RecursionError : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  7. 7

    범주 형 변수를 요약 할 때 최대 재귀 깊이를 초과했습니다.

  8. 8

    RecursionError at : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  9. 9

    Andrew의 곡선 : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  10. 10

    생성 할 때 Django 모델에서 최대 재귀 깊이를 초과했습니다.

  11. 11

    RuntimeError : 기본 해시 방법을 사용하여 최대 재귀 깊이를 초과했습니다.

  12. 12

    모듈을 설치할 때 Python 최대 재귀 깊이를 초과했습니다.

  13. 13

    RuntimeError : DB에서 다각형 포인트를 가져 오는 동안 Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  14. 14

    recursionerror : skopt를 사용한 tensorflow와 비교하여 최대 재귀 깊이가 초과되었습니다.

  15. 15

    함수는 없음을 반환하거나 "최대 재귀 깊이를 초과했습니다"라고 말합니다.

  16. 16

    메서드 이름을 인쇄 할 때 Python 개체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  17. 17

    BeautifulSoup : RuntimeError : 최대 재귀 깊이 초과

  18. 18

    Discord.py-누군가가 그를 멘션해도 봇이 대답하지 않습니다.

  19. 19

    아름다운 수프와 파이썬. "파이썬 객체를 호출하는 동안 최대 재귀 깊이가 초과되었습니다"오류가 발생하여 재귀가있는 모든 노드를 가져올 수 없습니다.

  20. 20

    discord.py 봇에 대한 조언이 필요합니다.

  21. 21

    Python : 목록이있는 객체를 목록이있는 다른 객체에 추가합니다. 최대 재귀 깊이 초과

  22. 22

    React 오류에서 최대 업데이트 깊이를 초과했습니다.

  23. 23

    useLayoutEffect, useRef로 최대 업데이트 깊이를 초과했습니다.

  24. 24

    Lodash 재귀 함수가 최대 스택 크기를 초과합니다.

  25. 25

    Python Discord 봇 '이벤트 루프가 닫혔습니다'

  26. 26

    최대 URL 길이가 C # MVC를 초과했습니다.

  27. 27

    오류 발생 : 비교에서 최대 재귀 깊이가 초과 됨

  28. 28

    / person /의 RecursionError가 __instancecheck__에서 초과 된 최대 재귀 깊이

  29. 29

    deferred.defer에 PermanentTaskFailure가 표시됨 : 최대 재귀 깊이 초과

뜨겁다태그

보관