Как заставить моего бота Discord запускать функцию каждое воскресенье в 0:00? - PullRequest
1 голос
/ 17 марта 2020

У меня бот-диск Python, использующий объявление discord.py. Я хотел бы сделать что-нибудь каждое воскресенье в 0:00. Как я могу это сделать? Я использую Python 3.7 и discord.py 1.3.2

Ответы [ 2 ]

2 голосов
/ 17 марта 2020

Это не более эффективный способ для заданного интервала, но один из способов сделать это

Вы можете использовать python ' schedule модуль.

import schedule

def job():
    "Write your job here "


if __name__=="__main__":

    schedule.every().sunday.at("00:00").do(job)      
    while True:
        schedule.run_pending()

Обновление: вышеуказанное программирование блокирует.

Для неблокирования вы можете использовать комбинацию потоков и расписания следующим образом.

import threading

import schedule

def job():
    """Your job here"""

def threaded(func):
    job_thread = threading.Thread(target=func)
    job_thread.start()

if __name__=="__main__":

    schedule.every().sunday.at("00:00").do(threaded,job)      
    while True:
        schedule.run_pending()
        """you can write your other tasks here"""

Эта программа создает другой поток для запланированной работы.

0 голосов
/ 17 марта 2020

если вы используете linux, вы можете использовать crontab: https://opensource.com/article/17/11/how-use-cron-linux

синтаксис может быть сложным, поэтому я рекомендую использовать генератор: https://crontab-generator.org/

...