Запустите одно и то же приложение 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)
Вернуться на верх