You did not miss anything, Daphne does not yet implement that part of the spec. It's something I hope to have in the next release.
Andrew On Tue, Apr 25, 2017 at 10:28 AM, Alexander Prokhorov <[email protected]> wrote: > Dear Andrew, > > thank you for advice. Now I am starting implementing ASGI worked based on > one included in Channels. I would like to take a look at example of how to > create and use single-reader channels properly, so I took Channels, > asgi_redis and Daphne code base and did not found any place where such > channels are created. In particular, I hoped to find the place where Daphne > creates `http.request.body_channel` to handle large HTTP requests. To my > surprise I did not found any `body_channel` mentions in the Daphne code > except a single test, which simply checks the message for `body_channel` > optional field. Do I miss something, or Daphne simply does not implement > this concept and therefor cannot handle large requests sequentially by > chunking them? > > воскресенье, 19 марта 2017 г., 21:18:07 UTC+3 пользователь Andrew Godwin > написал: >> >> Workers can't dynamically change their channels during runtime, but you >> can tell workers to only run specific channels in one of two ways: >> >> - Have different routing configurations and different settings files >> that point to each for the two worker groups >> - Use the --only-channels and --exclude-channels arguments to runworker >> to restrict which channels it will process. >> >> You can still only do this once at the start of the application, though. >> There's no way to dynamically vary what a worker wants at runtime because >> of how the Channels framework is written and integrated into Django; you'd >> have to do your own ASGI worker class from scratch if you wanted that. >> >> Andrew >> >> On Sun, Mar 19, 2017 at 5:57 AM, Alexander Prokhorov <[email protected]> >> wrote: >> >>> Dear Colleagues, >>> >>> I am playing with Channels for some time already. >>> >>> Now, I am trying to establish "sticky" channel to one of available >>> workers. I thought I can create single-reader channel from consumer and >>> somehow fix the routing to make this particular worker handle this >>> single-reader channel. I can use >>> >>> channels.channel_layers[channels.DEFAULT_CHANNEL_LAYER].new_channel( >>> "my_exclusive_channel?") >>> >>> in consumer core to create single-reader channel, but I cannot >>> understand how to setup routing properly in such case. I tried to implement >>> router object from scratch, but as I see its method `channel_names` invoked >>> only one time per worker. In other words, the problems reduces to the >>> question if it is possible to attach some consumer to dynamically created >>> single-reader channel. >>> >>> >>> -- >>> 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/ms >>> gid/django-users/be4c787f-1abc-4ece-8b74-ad13ce7180eb%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/be4c787f-1abc-4ece-8b74-ad13ce7180eb%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/f570799c-a6d7-4a15-bdb2-68b08cbe7c66%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/f570799c-a6d7-4a15-bdb2-68b08cbe7c66%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/CAFwN1upG%2BGFQvNugEWot5sdNKKu%2BDz8sxxFm2gmOzm%2B2odk0tQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

