私はDjangoアプリケーションをビルドしており、複数の外部アプリケーションから連絡を受けます。 DjangoアプリケーションはUIを提供し、外部アプリケーションから受け取ったデータをデータベースに取り込むことになっています。Django RabbitMQ consumer
最初のアイデアはdjango_rest_framework
でしたが、外部のすべてのアプリケーションがREST呼び出しでDjangoアプリに連絡しなければならないため、これは緊密に結合されたシステムを作成するように思えました。
私の他のアイデアは画像で最もよく説明されています:http://imgur.com/vakZvQsいくつかの出版社はRabbitMQでメッセージを作成し、私のDjangoはそれらを消費し、DBに適切なモデルを作成します。
これは可能でしょうか?私はpika
の出版社と消費者のためのライブラリから非同期の例を使用しており、メッセージは期待どおりに流れています。
RuntimeError: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
コードの抜粋:セロリの
# pika consumer
def on_message(self, unused_channel, basic_deliver, properties, body):
# invoking view function
from myapp.views import create_one_foo
create_one_foo()
self.acknowledge_message(basic_deliver.delivery_tag)
# views.py
from .models import Foo
def create_one_foo():
foo = Foo()
foo.bar = "bar"
foo.save()
あなたの問題はRabbitMQに関連していないようです。私はDjangoを知らないが、知識のある人が答えることができるように、あなたのDjangoアプリケーションの詳細を与えるべきである。 –