我尝试制作一个Crontab作业,每天凌晨4点运行一次Python脚本。
这是我的crontab行
0 4 * * * cron_scripts/scripttorun.py
文件正确链接,并且正在尝试执行该文件。但是,当它尝试执行该文件时,它会根据我的导入给出一些错误。 这是我的python文件导致崩溃的部分,它在第一行崩溃,因为它没有正确导入文件...
from history.models import Model1
from users.models import User
我正在尝试使用来自我的Web服务器的其他代码运行Python文件,该代码使用Django。 为了能够导入我的模型,我是否必须做一些额外的事情?
当我运行python scripttorun.py时,我得到了相同的结果。
答案 0 :(得分:2)
在Django中,您可以编写自定义的django-admin命令。请检查一下:https://docs.djangoproject.com/en/dev/howto/custom-management-commands/
然后,您将包含在crontab文件中:0 4 * * * python /path/to/myapp/manage.py scriptorun.py
答案 1 :(得分:1)
我个人的建议是在app / management / commands / yourcommand.py中创建一个新命令
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = "Might wanna add a help text"
args = '<arg>' # need args?
def handle(self, *args, **options):
# Do whatever you want to do
然后从你的crontab运行它。
/path/to/python /path/to/manage.py name_of_command
答案 2 :(得分:0)
你也可以这样做:
<强> do_something.py 强>
#! /usr/bin/python
#coding:utf-8
from __future__ import unicode_literals
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "prj.settings"
from app.models import YourModel
# do something
使用 manage.py
将文件放在同一个位置如何使用,你可以写一个.sh脚本
cd pjc-directory
python do_something.py
然后使用crontab
答案 3 :(得分:0)
它允许您创建简单的Django管理命令,其中包含所有django环境。
然后您可以设置 cron 以定期执行任务。
Django Extensions为您的Django项目提供了其他有用的工具,请看一下。