Как запустить ежедневные автоматические тесты для веб-скребка? - PullRequest
0 голосов
/ 31 августа 2018

Я поддерживаю REST API, созданный с помощью Django REST, который внутренне очищает несколько веб-страниц для получения информации.

У меня есть тесты для каждой конечной точки, которые проверяют, работают ли еще скребки. Они на самом деле соединяются со страницами и проверяют, что источники остаются неизменными и что все в основном все в порядке.

Я хотел бы запускать эти тесты несколько раз в день и получать уведомления о сбоях любого из этих скребков. Я не уверен, как мне подойти к этому.

Я ищу метод, который позволяет мне:

  1. Запускать тесты автоматически каждые X часов
  2. Сообщите мне о результатах

Я смотрел на CI, но я не уверен, что это предпочтительный подход здесь.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы можете попробовать django-crontab .

  • Простота настройки.
  • Управление кронами в соответствующих каталогах приложений.
  • Настраивается с помощью модуля settings.
  • Интегрируется с manage.py для простого добавления, удаления и отображения крон.

ПРИМЕЧАНИЕ : Работает для Django> = 1.8


РЕДАКТИРОВАТЬ

Пример конфигурации и использования :

  • Установка через pip: pip install django-crontab
  • Добавьте модуль INSTALLED_APPS в settings.
    INSTALLED_APPS = ( 'django_crontab', ... )
  • Создайте модуль с именем crons.py (вы можете назвать его как угодно) в пути к каталогу проекта.

crons.py (пример пути /path/to/project/<app_name>/crons.py) :

from .models import FooModel

def foo_scheduler():
    # update Foo's bar on each invocation
    foos = FooModel.objects.all()
    for foo in foos:
        foo.bar += 42
        foo.save()
  • Зарегистрируйте cron в settings.

settings.py

...

CRONJOBS = (
    # this will recur every 5 mins
    ('*/5 * * * *', '<app_name>.crons.foo_scheduler'),
)

...
  • Наконец, добавьте в crontab, используя python manage.py crontab add.
  • Удалить с помощью python manage.py crontab remove.
  • Чтобы отобразить все активные вакансии, python manage.py crontab show.

См. Дополнительные параметры конфигурации здесь .

0 голосов
/ 31 августа 2018

Если у вас уже есть скрипт, который выполняет тестирование и уведомляет вас (например, по электронной почте или в Pushover, реализация в Python не слишком сложна), настройте задание cron:

Откройте терминал и введите crontab -e, выберите ваш редактор, если вас спросят, и добавьте следующую строку:

* */X    * * *   python /path/to/testscript.py

где X следует заменить тем, как часто вы хотите тестировать. Например, если вы напишите 3 вместо X, каждые 3 часа ваш скрипт будет выполняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...