python - 运行 Django 和 GRPC 相同的应用程序
问题描述
我正在研究 Django rest 框架项目,我也需要使用 gRPC。但我不知道如何同时运行 HTTP 服务器和 gRPC 服务器。与 .NET 一样,它可以选择同时侦听 HTTP1 和 HTTP2。
当我使用命令时
python manage.py runserver
然后 gRPC 不起作用
当我使用
python manage.py grpcserver
然后 Rest API 不起作用
这个问题有什么解决办法吗?谢谢。
我使用了包:djangorestframework和django-grpc
解决方案
解决了
我刚刚创建了一个新的自定义管理命令并运行它
from django.core.management.base import BaseCommand
from subprocess import Popen
from sys import stdout, stdin, stderr
import time
import os
import signal
class Command(BaseCommand):
help = 'Run all commands'
commands = [
'python manage.py grpcserver',
'python manage.py runserver'
]
def handle(self, *args, **options):
proc_list = []
for command in self.commands:
print("$ " + command)
proc = Popen(command, shell=True, stdin=stdin,
stdout=stdout, stderr=stderr)
proc_list.append(proc)
try:
while True:
time.sleep(10)
except KeyboardInterrupt:
for proc in proc_list:
os.kill(proc.pid, signal.SIGKILL)
推荐阅读
- python - Peewee - 我如何执行原始查询并将其映射到字典?
- python - 如何编写查询?
- python - 通过 google colab 上的网络摄像头从视频中实时抓取帧
- python - 如果列组合与 Panda Dataframe 相同,如何删除行
- php - 升级PHP和CakePHP(2.10.16)版本后数据库(MySql)新增字段不受影响
- javascript - 根据 Vue.js 中的其他组件名称做某事是一种好习惯吗?
- wordpress - 如何修复 wordpress 仪表板仅出现在 html 中
- regex - 如何分析哪一组十个数字是重复的?(乐透)
- npm - npm 无法在全局和本地安装某些包?
- powershell - 为什么这个 int 增加到 01 两次?