Запустите одно и то же приложение Django и GRPC
Я работаю над проектом Django rest framework и мне нужно работать также с 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)