1

我想每周调用一次方法,为此我进行了此处提到的实现

https://gutsytechster.wordpress.com/2019/06/24/how-to-setup-a-cron-job-in-django/

我不确定它是如何工作的,但让我解释一下我做了什么。我需要调用下面文件夹结构中提到的方法。

proj_application
|
|- myapp
       |
       |-views.py (Method call Inside)
                |- poll_tracked()

在views.py中,

def poll_tracked():
    print('called')

在settings.py中,我已经提到

INSTALLED_APPS = [
'django_crontab',
]

CRONJOBS = [
    ('* * * * *', 'myapp.views.poll_tracked', '>>' + os.path.join(BASE_DIR, 'data.log'))
]

之后我跑

python3.7 manage.py crontab add
python3.7 manage.py runserver

当我运行 crontab -l 时,我可以看到,

* * * * * /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /Users/domain/dashboard/proj_application/manage.py crontab run dceca84af9ceab8a4d39d08fa148969f >>/Users/domain/dashboard/proj_application/data.log # django-cronjobs for proj_application

生成了一个名为 data.log 的新日志文件,但未调用上述方法 poll_tracked()并且日志为空。

有没有人遇到过这个问题?如果是这样,任何帮助表示赞赏。谢谢。

4

1 回答 1

0

也许只是尝试2>&1在最后添加,它将错误输出重定向到标准输出,并可能解释为什么您的日志文件为空。你也错过了一个空格>>

CRONJOBS = [
    ('* * * * *', 'myapp.views.poll_tracked', '>> ' + os.path.join(BASE_DIR, 'data.log') + ' 2>&1')
]
于 2020-07-13T22:44:07.687 回答