You need to set up the consumer to perform this task.

cf. https://github.com/justdjango/justchat/blob/master/src/chat/consumers.py

this corresponds to the following video tutorial which might be useful to
you:
https://www.youtube.com/watch?v=Wv5jlmJs2sU

On Thu, 22 Nov 2018 at 15:34, Nasir Sh <nshadra...@gmail.com> wrote:

> Thanks Yyavin, the problem is that in my management command I don't have
> access to `self` to send it. Is it possible to get access to a consumer
> from outside or how should my data producer relay the messages to channel
> in an async way?
>
> On Wednesday, November 21, 2018 at 8:47:07 PM UTC+1, Yavin Aalto Arba
> wrote:
>>
>> try with  self.channel_layer.group_send ?
>>
>> On Wed, 21 Nov 2018 at 19:44, Nasir Sh <nshad...@gmail.com> wrote:
>>
>>> Thanks Andrew this helps me as well. There is a missing piece I don't
>>> understand yet. In my management command, then I probably will have to use 
>>> `async_to_sync(channel_layer.group_send)`
>>> to send the message to consumers (right?). The only problem is that
>>> whenever I use async_to_sync it creates a new connection to redis every
>>> single time. I now use channels_redis v2.3.1 and in this version I don't
>>> get excessive connections but still it opens a new connection on every
>>> send. I was wondering if that is intentional or not in a sync context and
>>> if so, how can it be solved.
>>>
>>> Thanks again for your great work
>>>
>>> On Wednesday, February 22, 2017 at 7:55:33 PM UTC+1, Andrew Godwin wrote:
>>>>
>>>> Hi Jochen,
>>>>
>>>> Your problem is that if you want to listen to the pubsub channel you
>>>> will need a dedicated process to do so, as you can't just poll something
>>>> like that. Given that restriction, you're going to have to write something
>>>> like a management command that opens a connection to Redis and listens for
>>>> messages, and then whenever it gets one, sends the message onto a channel
>>>> in the Django channel system.
>>>>
>>>> You can send to channels from anywhere, so it's just a basic listener
>>>> with one line of channel send added. You're likely to want some sort of
>>>> logic on these messages, I suspect, so I would send onto a single custom
>>>> channel and then, now your messages are in the evented channel system, you
>>>> can then write a consumer for that channel and tie it into the routing and
>>>> handle any distribution/storage there.
>>>>
>>>> This keeps the body of your logic inside the Django consumer code, and
>>>> the management command nice and simple - it just needs to send onto a
>>>> custom channel and not worry about what to do with that data, you can hook
>>>> that up later. If you have fields in the message you split out into
>>>> different dictionary keys, you can even use the Channels routing options on
>>>> those fields - so, for example, you could route everything with a certain
>>>> task name to one consumer, and everything else to a catch-all consumer.
>>>>
>>>> Andrew
>>>>
>>>> On Wed, Feb 22, 2017 at 6:55 AM, Jochen Breuer <bre...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi!
>>>>>
>>>>> I'm not entirely sure where to start and I hope you can help me. I'm
>>>>> using SaltStack to execute tasks on minions. The results of those jobs
>>>>> (that's the term used in Salt) are then published to a job cache. In this
>>>>> case its a Redis server (Redis Pubsub). Now I would like to subscribe to a
>>>>> specific Redis channel, where the job results are published, with my 
>>>>> Django
>>>>> (Channels) application. Every time a job result is pushed, I'd also like 
>>>>> to
>>>>> push a message to a channel in Django.
>>>>>
>>>>> Where to begin? Do I need to write a new protocol server or just a
>>>>> custom channel? Even after reading the docs I'm still lacking overview.
>>>>> Perhaps someone can push me into the right direction. Thanks!
>>>>>
>>>>> Jochen
>>>>>
>>>>> --
>>>>> 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/c933a5b5-7b72-4d7d-985a-a311c0f16b26%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/django-users/c933a5b5-7b72-4d7d-985a-a311c0f16b26%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>> 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/800a3278-ba4b-402d-b8ee-341b999879ba%40googlegroups.com
>>> <https://groups.google.com/d/msgid/django-users/800a3278-ba4b-402d-b8ee-341b999879ba%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> 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+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@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/730e9a11-4226-4c7e-8252-e33518634418%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/730e9a11-4226-4c7e-8252-e33518634418%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@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/CA%2B%2Be-ZXLPgPjScQPOpwcENsG5%2BTS_WcSeEGR%2B0wN2oEPQwv4HA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to