'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. что именно происходит когда сервер перезапускается, все работает нормально, но через некоторое время, каким-то образом возникает эта ошибка, и после этого последнее сообщение, когда ошибка начала возникать, отправлялось по канальному уровню неоднократно, пока я не перезапустил сервер.
Спасибо!!!