【问题标题】:How can I use Django signals outside the Django application?如何在 Django 应用程序之外使用 Django 信号?
【发布时间】:2021-06-07 23:52:32
【问题描述】:
我正在运行一个响应外部请求的 gRPC 服务器。我还有一个处理所有其他网络相关事件的 Django 应用程序。当 gRPC 服务器收到请求时,我想向 Django 应用程序发送信号。 (gRPC 系统已经到位。Django 应用是一个扩展)
由于在应用程序外部使用 Django 信号不起作用(没有上下文),我想要另一种方式向应用程序发送某种通知。
我知道这不太可能发生。
【问题讨论】:
标签:
python
django
grpc
django-signals
【解决方案1】:
我实现了第一种方法。也可以有其他方法。
- 作品。如果您坚持使用 Django 信号,您可以在 asgi.py 中将 gRPC 服务器作为线程启动。这允许它获取 Django 上下文,然后您可以创建自定义信号并在您的 gRPC 服务器代码中使用它。
- 只需使用 Python 中的 requests 之类的库,您就可以创建一种通信机制来访问您的 Django 应用程序。