Я создаю бота Reddit, используя PRAW (Python Reddit API Wrapper) для субреддита. Я модерирую эти комментарии к новым материалам с просьбой, чтобы автор комментировал свое сообщение, чтобы соответствовать правилам публикации. Если автор не прокомментировал свое сообщение в течение 1 часа, бот должен удалить сообщение. Последовательность событий выглядит следующим образом:
- Сообщение создано.
- Бот комментирует сообщение, сообщая, что у него есть один час, чтобы добавить комментарий к сообщению.
- Проходит час.
- Если пользователь не прокомментировал свое сообщение, сообщение удаляется. В противном случае никаких действий не предпринимается.
У меня проблема с ожиданием в течение одного часа. Я не могу использовать sleep()
для блокировки на один час, потому что боту нужно будет обрабатывать другие сообщения, которые были сделаны в этот период времени (т.е. сообщения делаются каждые пятнадцать минут, но использование sleep()
в течение одного часа приведет к падению бота позади). Я также не думаю, что могу использовать опрос, поскольку проверка отправлений блокирует поток. Чтобы уточнить, я проверяю наличие новых представлений, используя for submission in subreddit.stream.submissions(skip_existing=True):
, где subreddit.stream.submissions()
- это генератор / поток, который генерируется всякий раз, когда кто-то отправляет сообщение в сабреддит ( Документация здесь ).
Итак на данный момент я совершенно не понимаю, где находится go. Мне нужно создать новую задачу для каждого создаваемого сообщения, которое проходит через шаги с 1 по 4, не блокируя больше идентичных задач, выполняемых каждый раз при отправке сообщения. Если бы вы могли указать направление на go или как я могу это сделать, я был бы благодарен. Если вы его пропустили, я использую Python.