**signals.py**
@receiver(post_save, sender=CheckIn)
def send_data_on_save(sender, instance, **kwargs):
channel_layer = get_channel_layer()
stats = get_stats()
async_to_sync(channel_layer.group_send)(
'dashboard',
{
'type': 'send_data',
'message': stats
}
)
analytics = get_analytics()
async_to_sync(channel_layer.group_send)(
'analytic',
{
'type': 'send_data',
'message': analytics
}
)
**consumers.py**
class DashboardConsumer(WebsocketConsumer):
def connect(self):
self.room_group_name = 'dashboard'
# Join room group
async_to_sync(self.channel_layer.group_add)(
self.room_group_name,
self.channel_name
)
self.accept()
def disconnect(self, close_code):
# Leave room group
async_to_sync(self.channel_layer.group_discard)(
self.room_group_name,
self.channel_name
)
# Receive message from WebSocket
def receive(self, text_data):
text_data_json = json.loads(text_data)
message = text_data_json['message']
# Send message to room group
async_to_sync(self.channel_layer.group_send)(
self.room_group_name,
{
'type': 'send_data',
'message': message
}
)
# Receive message from room group
def send_data(self, event):
message = event['message']
# Send message to WebSocket
self.send(text_data=json.dumps({
'message': message
}))
**Traceback**
Exception inside application: module 'asyncio' has no attribute '_get_running_loop'
File "/usr/lib/python3.5/asyncio/tasks.py", line 241, in _step
result = coro.throw(exc)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/sessions.py", line 183, in __call__
return await self.inner(receive, self.send)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/middleware.py", line 41, in coroutine_call
await inner_instance(receive, send)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/consumer.py", line 59, in __call__
[receive, self.channel_receive], self.dispatch
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/utils.py", line 52, in await_many_dispatch
await dispatch(result)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/asgiref/sync.py", line 145, in __call__
return await asyncio.wait_for(future, timeout=None)
File "/usr/lib/python3.5/asyncio/tasks.py", line 373, in wait_for
return (yield from fut)
File "/usr/lib/python3.5/asyncio/futures.py", line 361, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
future.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 274, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/db.py", line 14, in thread_handler
return super().thread_handler(loop, *args, **kwargs)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/asgiref/sync.py", line 164, in thread_handler
return func(*args, **kwargs)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/consumer.py", line 105, in dispatch
handler(message)
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/channels/generic/websocket.py", line 39, in websocket_connect
self.connect()
File "/home/user1/demowebapps/vmsbackend/check_in/consumers.py", line 57, in connect
self.channel_name
File "/home/user1/demowebapps/env/lib/python3.5/site-packages/asgiref/sync.py", line 41, in __call__
if asyncio._get_running_loop() is not None:
module 'asyncio' has no attribute '_get_running_loop'
javascript .send()
./check_in/signals.py:47: RuntimeWarning: Coroutine'RedisChannelLayer.group_send' was never awaited
'message': analytics
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5d499e4f-b64c-48bb-8711-5c6bbbcbe2c3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/WaUWyQ1JWi8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAFwN1urBXPX5RircQmQjyEjKQ6-f1cx_Y%3DfWTXnR2L%3DMhxgSgA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CABR2EV803cnFyLJQ1H0J-cyG81K2p%2BZPp_2U6Y7TfkcjLf_Pjg%40mail.gmail.com.