如何通过cron作业运行Django管理命令

2024-05-15 07:57:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个名为django邮箱的django应用程序。其目的是通过pop3和其他协议导入电子邮件并将其存储在数据库中。我想每隔一段时间通过一个计时器来做这件事。在文档http://django-mailbox.readthedocs.org/en/latest/topics/polling.html中声明:

使用cron作业

您可以通过运行名为get mail的管理命令(可以选择使用要获取邮件的邮箱名称的参数)轻松使用传入邮件

python manage.py getmail

现在我可以在命令行本地运行这个命令,它可以工作,但是如果它被部署到一个外部服务器上,这个服务器只能通过一个URL访问,那么这个命令是如何给出的呢?


Tags: django文档命令目的服务器数据库应用程序http
2条回答

如果使用的是虚拟环境,请使用virtual env中的python二进制文件

* * * * * /path/to/virtualenv/bin/python /path/to/project/manage.py management_command

在服务器计算机上:

$ sudo crontab -l
no crontab for root
$ sudo crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]:    

选择您喜欢的编辑器

然后请参阅http://en.wikipedia.org/wiki/Cron了解如何计划命令何时运行,将其指向计算机上的某个.sh文件,确保给出完整路径,因为这将在根用户上下文中运行。

cron将运行的脚本可能类似于:

#!/bin/bash
cd /absolute/path/to/django/project
/usr/bin/python ./manage.py getmail

相关问题 更多 >