Django -Simple-Captcha Cron Job для удаления записей Captcha - PullRequest
0 голосов
/ 04 мая 2020

Мне нужна помощь с созданием задания cron для django -simple-captcha, чтобы иметь возможность удалять записи базы данных captcha из таблицы postgresql captcha_captchastore ежедневно или ежечасно. Внутри таблицы captcha_captchastore есть столбец даты и времени истечения срока. Согласно документации и самому сопровождающему, вы можете использовать:

CAPTCHA_GET_FROM_POOL, CAPTCHA_GET_FROM_POOL_TIMEOUT, настройки CAPTCHA_TIMEOUT

в сочетании с python3 manage.py * команда captcha_create 1006. * 1005. документы немного сбивают с толку и не показывают вам пример того, как выполнить задание cron с postgres.

Я также не знаю в продакшене, хорошо ли запускать python3 manage.py captcha_create_pool, когда сайт активно работает в Gunicorn. Нужно ли останавливать gunicorn, чтобы иметь возможность запускать команду captcha_creat_pool с заданием cron?

Можно ли использовать любой из пакетов django ниже, чтобы упростить эту задачу? Если да, то как?

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

https://djangopackages.org/grids/g/cron/

https://django-simple-captcha.readthedocs.io/en/latest/advanced.html

1 Ответ

0 голосов
/ 04 мая 2020

Вот пример кода, который я использую для запуска заданий cron, используя Django.

"""
Add this file to user crontab
# crontab -u username -e
* * * * *       python /your/path/to/this/file.py

"""

"""
This prefix is copied from wsgi.py
"""

import os
import sys

execfile('/your/path/bin/activate_this.py', dict(__file__='/your/path/bin/activate_this.py'))

from django.core.wsgi import get_wsgi_application

sys.path.append("/your/path/project/")

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")

application = get_wsgi_application()

# You will have access to Django models from here

from your.models import MyModel

# Call to staticmethod delete_old_items
MyModel.delete_old_items()
...