2017-09-19 14 views
0

djangoアプリでセロリと赤ちゃんの使い方について質問したいと思います。私は約2日間セロリを学んでいますが、私はまだちょっと混乱しています:/セロリとレディスをインストールしましたが、うまく動いています。私の問題は、ユーザーに定期的な作業を作成、更新、中断させたいということです。私はこの記事を読んだ - http://kindshofer.net/2016/11/19/dynamically_adding_a_periodic_task_to_celery.htmlとこの質問 - How to dynamically add/remove periodic tasks to Celery (celerybeat)他の記事のlooootですが、これらの2つほど有用ではありません)、それは私がdjango-celeryを使用する必要があると思われます。私はそれが素晴らしい選択だと思っていましたが、私はdjangoの結果バックエンドを使用しています(ここでは---- https://github.com/celery/django-celery)、django-cellelはdjangoの結果バックエンドを使用しています。それは赤ちゃんとジャンゴセロリを使用することは可能ですか?たぶん、ジャンゴ・セロリーと一緒に私はレディスを使用する必要はありませんか?ユーザーが定期的なタスクを作成できるようにするための方法がいくつかありますか?私は本当に私の定期的な仕事が速くて軽量であることが必要です。なぜなら、それらの多くがあり、彼らは完璧である必要があるからです(そして、そういうわけで私はそれらをどこかに押し入れる必要があると思ったからです)。 本当にありがとうございます。セロリの定期的な仕事をユーザに作成させてください。

答えて

0

私はあなたが混乱していると思います...セリーはメッセージブローカーとしてReditサーバーを必要とし、この2つのものはシステムにグローバルにインストールする必要があります..インストールするには、この2つのツールをdjangoと統合するあなたの仮想環境にあること)djangoを使ってセロリのタスクを保存するためにcrontabとdjango_celery_resultsを使った定期的な作業のためのdjango_celery_beat ...

もちろん、定期的なタスクを起動しカスタマイズすることは可能です。 (あなたのテンプレート内で、フォームで)ユーザの入力を受け取り、あなたのビューでその入力を受け取り、それをあなたのtasks.pyファイルの関数に渡します。あなたのtasks.pyで、タスクを作る関数を作ることができます!

このガイドでは、非常に便利です: https://github.com/codingforentrepreneurs/Guides/blob/master/all/Celery_Redis_with_Django.md

1

高速かつ軽量で、Redisの== Python RQ。しかし、仕事の中断が問題になる可能性があります。

セロリ問題について:結果バックエンドは結果のみを格納します。キューを処理しません。それでも、あなたはRedisのに結果を送信することができます

CELERY_RESULT_BACKEND = 'django-cache' 

設定cache

CACHES = { 
    "default": { 
     "BACKEND": "django_redis.cache.RedisCache", 
     "LOCATION": "redis://127.0.0.1:6379/1", 
     "OPTIONS": { 
      "CLIENT_CLASS": "django_redis.client.DefaultClient", 
     } 
    } 
} 

をしかし - django-dbバックエンドを使用する理由は、それが結果の上にクエリセットを作成することが可能であるということです。結果はビューに表示され、ジョブは一般的には表示されないので、これは一般的にはより便利です。結果(平均ジョブ実行時間など)を集計してグラフを作成できるので、Djangoで非常に便利で、ORMでキー/値ストアを使ってPythonでソート/集計するのがはるかに簡単です。

関連する問題