2017-10-30 3 views
-2

私は、ユーザーの詳細を取り込むためのシンプルなフォームのdjangoプロジェクトを持っています。バックグラウンドで実行されているPython botを使用して、変更を常にdjangoデータベースで確認します。それはセロリがこの仕事に適したツールですか?他の解決策?ありがとうございましたdjangoのバックグラウンドでpython botを動かす

答えて

2

セロリは本当にあなたがここでしたいとは思わない - セロリは主に、登録プロセスの電子メールを送信するなど別の作業者に同じプロセスで処理する必要のないタスクを移動するためのものです。

この状況では、適切な変更がデータベースに加えられるたびに、Django's signalsを使用して必要な機能をトリガーする傾向があります。たとえば、新しいユーザーなど、特定の種類のオブジェクトが作成されたときにトリガする必要がある場合は、post_saveというユーザーモデルの信号を使用することができます。

ボットは別のプロセスになりますが、Redisを使用するプロセス間で通信するのは難しくありません。その信号がレディスにメッセージを公開し、ボットにそのメッセージを聞かせて、そのイベントで必要なアクションを実行させるようにしてください。

+0

ありがとう、マシュー。それは私が探していた答えです。ちょうど私の最初のdjangoプロジェクトを構築しようとしています。ありがとう! –

0

私はあなたのニーズの詳細はありませんが、そのようなことを達成するためのいくつかの方法があります。

常にチェックするアプローチは:

毎分あなたのPythonスクリプトを起動
  • A crontab
  • あなたは、「変更の」お使いのPython環境では、crontabファイルはどうなるのか達成するために、アプローチ

Celery beatを使用することができ、言ったように:あなたがコントロールを持っている場合は、おそらく最高の

  • をDjangoプロジェクトの中で、あなたのスクリプトをフォームの検証/保存で実行させることができます!このために、セロリタスクを追加したり、Pythonスクリプトを実行したり、Djangoシグナルを使用したりすることができます。
関連する問題