0

私はカスタムコメンドを持っています:

python manage.py checksomething

これを2時間ごとに実行するにはどうすればよいですか?

私はdjango-cronを見ました:

#example from doc
from django_cron import cronScheduler, Job

from MyMailFunctions import check_feedback_mailbox

class CheckMail(Job):
        # run every 300 seconds (5 minutes)
        run_every = 300

        def job(self):
                # This will be executed every 5 minutes
                check_feedback_mailbox()

cronScheduler.register(CheckMail)

しかし、それを実行する方法は?自動で点灯しますか?サーバーに何かを設定していますか? このファイルはどこにありますか? (どのフォルダに?)

4

2 に答える 2

2

crontabを使用します。使い方は非常に簡単です

crontab を編集するには:

$ crontab -e

そしてあなたの仕事を追加してください:

* */2 * * * python /path/to/project/manage.py checksomething
于 2013-02-07T09:57:55.603 に答える
1

The idea with the django_cron is to set a job that will run every X seconds within your project.

You create the job (CheckMail function in your example) and set its period (run_every = 300 which means every 300 seconds = 5 minutes).

After setting the job you register the job using cronScheduler.register(CheckMail).

To make the job run every 5 minutes you need in your url.py to add the following :

import django_cron
django_cron.autodiscover()

Doing that will make the django_cron active and your job will start every 5 minutes.

This is a better approch then calling manage.py checksomthing from a script. that way your django project will run its own job within your django project and will not be depend on a running script.

于 2013-02-07T09:55:34.687 に答える