Channels: Fix runworker/daphne to not require yielding receive()

Created on 22 Jun 2017  路  7Comments  路  Source: django/channels

As reported in https://github.com/django/asgi_redis/issues/50, if the synchronous receive() method used on the channel layer is totally blocking, one or more of runworker or daphne block in a way where no responses go out to clients. The cause needs to be found and fixed; my suspicion is personally on Daphne.

bug exintermediate

Most helpful comment

Still in development alpha. Hoping to have something beta/RC quality soon, but christmas with the family comes first.

All 7 comments

@andrewgodwin Someone in this problem? Can I get it?

Oh, this is probably not relevant since I'm rewriting that whole lot to be asyncio native at the moment - I wouldn't want you to work on it and not have the result be used!

@andrewgodwin is there an issue related to channels support for asyncio that we could subscribe to, to track progress? Personally, I'm really looking forward to being able to do await channel_layer.receive(), is that one of the things that will be possible with the work you're doing?

Yeah that's what Channels 2 is. Look at some of my blog posts or the 2.0 branches in various repos for more info.

I just read your blog post, really cool stuff! What's the current status of channels 2 and redis/IPC? I'm not looking for anything production quality, but just something that mostly works. Basically, what's the best way to have two interfaces with Channels 2 talking to each other if they are in separate processes?

Still in development alpha. Hoping to have something beta/RC quality soon, but christmas with the family comes first.

Resolving as channels 2 definitely fixes this and is basically ready to ship.

Was this page helpful?
0 / 5 - 0 ratings