Как запланировать выполнение команды Django shell каждую неделю?

Я пытаюсь заставить определенный Python-скрипт запускаться каждую неделю в оболочке Django. Как я могу этого добиться? Я читал о cron & django-rq, но не думаю, что это возможно в рамках заданных параметров.

Заранее спасибо!

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

from formcheck.models import FormCheck
import csv

FormCheck.objects.all().delete()

formcheck_csv = open('PolisCheck.csv', 'r', encoding = "utf-8") 
reader = csv.reader(formcheck_csv)
headers = next(reader, None)[1:]

for row in reader:  
   polis_dict = {}
   for h, val in zip(headers, row[1:]):
      polis_dict[h] = val
   formcheck = FormCheck.objects.create(**polis_dict)

formcheck_csv.close()  
exit()

Именно для этого и нужен cron.

Вместо отдельного python-скрипта создайте команду django. Создайте файл your_app/commands/remove_db.py.

from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):
    args = ''
    help = 'Remove old database'

    def handle(self, *args, **options):
        # put your removal logic here

Затем, в командной строке:

$ python manage.py remove_db

Теперь легко добавить новую задачу cron в систему Linux, используя crontab:

# m h  dom mon dow   command
0 0 * * 0 python /var/www/myapp/manage.py remove_db
Вернуться на верх