7

私はdjango-cron仕事をしようとしていますが、そうではありません。ここの指示に従ってcron をセットアップしましたが、問題はpython manage.py runcrons、コマンド ラインに入力したときにのみジョブが実行され、ジョブが 5 分ごとに実行されないことです。他に何をすべきかわかりません。私は他のドキュメントを読みましたが、混乱しcrontabsています。chronographcron または chronograph と一緒に crontabs をインストールしますか、それとも django-cron だけで cron が正常に動作しますか? また、ジョブを自動的に実行するにはどうすればよいですか。ここのドキュメントで私が読んだNow everytime you run the management command python manage.py runcrons all the crons will run if required. Depending on the application the management command can be called from the Unix crontab as often as required. Every 5 minutes usually works for most of my applications.. これは何を意味するのでしょうか。ここで何が欠けていますか。迷っています。ヘルプ

設定.py

CRON_CLASSES = (
"myapp.views.MyCronJob",
)

INSTALLED_APPS = (

'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_cron',

'django.contrib.admin',
'django.contrib.admindocs',
'myapp',


)

ビュー.py

from django_cron import CronJobBase, Schedule
class MyCronJob(CronJobBase):
RUN_EVERY_MINS = 10 # every 10 min

schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
code = 'my_app.my_cron_job'    # a unique code

def do(self):
    print "10 min Cron"
    theJob()

Windowsプラットフォームでpycharmを使用してdjangoを実行していることに言及する必要があります...

4

3 に答える 3

2

問題の根本原因はオペレーティング システムにあります。Web サーバーは、cron ジョブを呼び出すような種類のデーモンではなく、Web 要求を処理するだけです。Windows で定期的なタスクを呼び出すには、Windows タスク スケジューラを使用する必要があります。

cron の Windows バージョンとは何ですか?

あなたの問題を解決する他の方法は、セロリ ビート モードでセロリ ディーモンを起動することです。

http://celeryproject.org/

http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

非常に単純なアプリケーションの場合、セロリを使用する必要はありません。ただし、キューが最適なソリューションである場合も多くあります。

于 2013-04-13T02:08:00.293 に答える
1

代わりに django-crontab をインストールしてください。

pip install django-crontab  

settings.py を変更して django-crontab を含めます

INSTALLED_APPS = (
'django_crontab',
...
)

CRONJOBS = [
('*/5 * * * *', 'myproject.cron.my_scheduled_job')
]

app ディレクトリに cron.py ファイルを作成します

def my_scheduled_job():
   #do something

cron ジョブを含めたり更新したりするたびにこれを実行します。

python manage.py crontab add

ローカル サーバーを実行して cron をテストします。

python manage.py runserver

そして、あなたは完了です!:)

于 2016-11-07T16:49:40.627 に答える