В боте Python, как запускать функцию только один раз в день? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть бот Python, работающий с PRAW для Reddit. Это открытый исходный код, и поэтому пользователи могут запланировать запуск этого бота на любой частоте (например, используя cron). Он может запускаться каждые 10 минут или каждые 6 часов.

У меня есть особая функция (давайте назовем ее check_logs) в этом боте, которая должна запускать не каждое выполнение этого бота, а только один раз в день. ,У бота нет базы данных.

Есть ли способ сделать это в Python без внешних баз данных / файлов?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Если вы используете cron, вы можете запустить его с аргументами командной строки .

И определить в cron, например. python3 main.py daily для ежедневного запуска, который вам нужен, и python3 main.py frequent для другой версии.

Я делаю это таким образом, и сейчас это работает оптимально.

0 голосов
/ 01 ноября 2019

Вообще говоря, лучше (и проще) использовать внешнюю базу данных или файл. Но, если вам это абсолютно необходимо, вы также можете:

  1. Изменить сам скрипт, например, сохранить дату последнего запуска в закомментированной последней строке скрипта.
  2. Сохраните дату последнего обновления в Интернете, например, в вашем случае это может быть сообщение Reddit, документ Google или черновик электронной почты или сайт, такой как Pastebin и т. Д.
  3. Изменить«Дата изменения» самого скрипта и использовать его в качестве ссылки.
...