Как запустить сервер socket io с помощью службы gunicorn

Я использую службу socket.io в моем приложении Django, и я хочу создать одну службу gunicorn, которая будет отвечать за запуск службы socket.io.

Ниже представлен код сервера socket io

Имя файла: server.py

from wsgi import application
from server_events import sio

app = socketio.WSGIApp(sio, application)


class Command(BaseCommand):
    help = 'Start the server'

    def handle(self, *args, **options):
        eventlet.wsgi.server(eventlet.listen(('127.0.0.1', 8001)), app)

Ниже приведен фактический код сервера с connect, disconnect и одним пользовательским методом

Имя файла: server_events.py

from wsgi import application

sio = socketio.Server(logger=True)
app = socketio.WSGIApp(sio, application)

@sio.event
def connected(sid, environ):
    print("Server connected with sid: {}".format(sid))

@sio.event
def disconnect(sid):
    print("Server disconnected with sid: {}".format(sid))

@sio.event
def run_bots(sid):
    print("func executed")
    **# Here custom logic**

Когда я ввожу команду python manage.py server в локальном режиме, она работает нормально, но на рабочем сервере я не хочу вводить команду python manage.py server. Я хочу создать одну службу Gunicorn и дать некоторые инструкции этой службе, чтобы, когда я введу команду Gunicorn service, она автоматически запустила сервер сокетов IO, как и команда runserver.

Я попытался реализовать эти вещи, создав служебный файл Gunicorn, но это не сработало.

socket-gunicorn.service

[Unit]
Description=SocketIO server
After=network.target

[Service]
Type=simple
User=ubuntu
Group=www-data

WorkingDirectory=/home/ubuntu/crypto-trading-bot

ExecStart=/home/ubuntu/crypto-trading-bot/venv/bin/python3 manage.py server >> /home/ubuntu/crypto-trading-bot/socketIO.log 2>&1
Restart=always


[Install]
WantedBy=multi-user.target

Я новичок в серверных вещах, поэтому любая помощь будет полезна.

Спасибо

Вернуться на верх