簡體   English   中英

如何通過cron job運行django管理命令

[英]How can I run a django management command by cron job

我正在使用一個名為django-mailbox的django應用程序。 這樣做的目的是通過pop3和其他協議導入電子郵件消息並將其存儲在數據庫中。 我想通過一個chron定期做這件事。 http://django-mailbox.readthedocs.org/en/latest/topics/polling.html文檔中,它指出:

使用cron作業

您可以通過運行名為getmail的管理命令輕松地使用傳入郵件(可選地使用您要獲取郵件的郵箱名稱的參數):

python manage.py getmail

現在我可以在命令行本地運行它並且它可以正常工作,但是如果將它部署到只能通過URL訪問的外部服務器,那么該命令將如何給出?

如果您使用虛擬環境,請使用virtualenv中的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文件,確保提供完整路徑,因為這將在root中運行用戶上下文。

cron將運行的腳本可能類似於:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM