运行 Django 和 GRPC 相同的应用
Run Django and GRPC same application
我正在处理 Django 休息框架项目,我也需要使用 gRPC。但我不知道如何同时管理 运行 HTTP 服务器和 gRPC 服务器。与 .NET 一样,它可以选择同时监听 HTTP1 和 HTTP2。
当我使用命令时
python manage.py runserver
然后 gRPC 不起作用
当我使用
python manage.py grpcserver
然后休息 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)
我正在处理 Django 休息框架项目,我也需要使用 gRPC。但我不知道如何同时管理 运行 HTTP 服务器和 gRPC 服务器。与 .NET 一样,它可以选择同时监听 HTTP1 和 HTTP2。
当我使用命令时
python manage.py runserver
然后 gRPC 不起作用
当我使用
python manage.py grpcserver
然后休息 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)