try with self.channel_layer.group_send ? On Wed, 21 Nov 2018 at 19:44, Nasir Sh <[email protected]> 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 <[email protected]> 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 [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/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 [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/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 [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/CA%2B%2Be-ZVtt3kw9g-t2_D44aVvjRtBebbUTDbCdnKSDUWYBDRcBQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

