Hi!
I'm trying to create a chat that when it meets the condition of "hola" is
sent by a task in celery. However, when it enters the condition the status
is not updated, can someone help me?
I leave my code, please help me!
Please help me, thx! And sorry for my english :s
*consumers.py*
import jsonfrom channels.generic.websocket import
AsyncWebsocketConsumerfrom .tasks import MensajeAlGrupo
class Consumidor(AsyncWebsocketConsumer):
async def connect(self):
# Join room group
await self.channel_layer.group_add(
'grupo',
self.channel_name
)
await self.accept()
async def disconnect(self, close_code):
await self.channel_layer.group_discard(
'grupo',
self.channel_name
)
# Receive message from WebSocket
async def receive(self, text_data):
text_data_json = json.loads(text_data)
message = text_data_json['message']
if str(message) == "hola":
MensajeAlGrupo.delay()
else:
# Send message to room group
await self.channel_layer.group_send(
'grupo',
{
'type': 'chat_message',
'message': message
}
)
# Receive message from room group
async def chat_message(self, event):
message = event['message']
# Send message to WebSocket
await self.send(text_data=json.dumps({
'message': message
}))
*tasks.py*
#De celeryfrom Filtros.celery import appfrom channels.layers import
get_channel_layer
@app.task()
async def MensajeAlGrupo():
channel_layer = get_channel_layer()
await channel_layer.group_send(
'grupo',
{"type": "chat_message", "message": "Hello World"},
)
*celery.py*
#De celeryfrom __future__ import absolute_import, unicode_literalsimport
osfrom celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Filtros.settings')
app = Celery('Proyecto')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
app.conf.update(
BROKER_URL = 'redis://127.0.0.1:6379/0',)
--
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 [email protected].
To post to this group, send email to [email protected].
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/873fa6e7-644d-485f-aabc-c4d384c758cf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.