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+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/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+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/CAFwN1urw99qQb7%2BigCFCF1m3H33Cjxuw-_-6Aw82wc%3DDjLtR5g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to