Robert, I was using a basic loop over my know channels which eventually gets the message to each user. Scaling the IRC style chat application using Task Queues sounds fine though would definitely add more latency and other idempotent considerations.
Stephen On Apr 8, 1:05 pm, Robert Kluin <[email protected]> wrote: > Hi Stephen, > Out of curiosity, were you simply going through the list one-by-one > sending messages? Or, did you implement a more sophisticated fanout > strategy? For example, did you break the list into sets of, say, ten > users then insert a bunch of tasks to handle the sending? > > Robert > > > > > > > > On Fri, Apr 8, 2011 at 15:33, Stephen Blum <[email protected]> wrote: > > Jamie, > > > I have experience with what you are describing Jamie while I was > > building an IRC style chat client where multiple user are connected to > > a chat room. When a user send a message I would loop through each > > user connected in the channel and send them a message using > > ChannelService.sendMessage(). This becomes slow as more users > > connect. Because the Channel API does not scale with this > > broadcasting pattern, I've changed to a service that specializes in > > broadcasting calledwww.pubnub.comPubNub. The design pattern for > > broadcasting works great with this service. All I need to do is > > execute one function call with the intended message and every > > connected user receives this message instantly. > > > On Apr 7, 11:22 am, Jamie <[email protected]> wrote: > >> Given that the current quota for Channel creation is 95,040 per day, > >> I'm looking into building a degradation path where I would use polling > >> from the client side after a certain number of concurrent users have > >> been reached. What I'm trying to figure out is where is cut-off point > >> should be. > > >> How many concurrent channel connections can GAE handle in a performant > >> manner? > > >> At a high level, this is how my app works: > > >> 1) Server receives an update from an external source. > >> 2) Server notifies each connected client via the Channel API about > >> this new update. This is currently done in a crude way by looping > >> through all clients and sending the msg via > >> ChannelService.sendMessage(). > > >> Given that my site is not very popular right now, it's hard for me to > >> know if GAE's Channel API can handle a large number of concurrent > >> channels. > > >> Does anyone have rough numbers or best practices in regards to this? > > >> Thanks, > >> J > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
