如何每周安排Djangoshell命令



我试图让某个Python脚本每周在Django shell中运行。我怎样才能做到这一点?我读过关于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的作用。

创建django命令,而不是使用单独的python脚本。创建您的_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

现在,使用crontab:可以很容易地将新的cron任务添加到Linux系统中

# m h  dom mon dow   command
0 0 * * 0 python /var/www/myapp/manage.py remove_db

相关内容

  • 没有找到相关文章

最新更新