'RuntimeError: cannot schedule new futures after interpreter shutdown', при отправке сообщения на канальном уровне, в Django

Я пытаюсь отправить сообщение через канальный уровень, где я использую Thread для непрерывного запуска функции,


channel_layer = get_channel_layer()
async def send_data():
    try:
        await (channel_layer.group_send)('Live_Message_Layer', {
        'type': 'send_live_message',
        'value': {'live_message':json.dumps(message)}})
    except:
        print("Error while sending message ...\n", traceback.format_exc())
        # RuntimeError: cannot schedule new futures after interpreter 
        # shutdown


class MyWorker(Thread):
    def __init__(self):
        Thread.__init__(self)
    
    def run(self):
        print('Worker is running .....')

        while True:
            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
            loop.run_until_complete(send_data())
            loop.close()

            time.sleep(0.5)

MyWorker().start()

В приведенном выше коде сообщения меняются каждую секунду и отправляются на канальном уровне. И это развернуто на ubuntu, используя daphne и gunicorn. что именно происходит когда сервер перезапускается, все работает нормально, но через некоторое время, каким-то образом возникает эта ошибка, и после этого последнее сообщение, когда ошибка начала возникать, отправлялось по канальному уровню неоднократно, пока я не перезапустил сервер.

Спасибо!!!

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