richsage / RMSPushNotificationsBundle

NOT MAINTAINED! ⛔️ Push notifications/messages for mobile devices. Supports iOS, Android (C2DM, GCM), Blackberry and Windows Mobile (toast only). A Symfony2 bundle.
MIT License
321 stars 152 forks source link

Add queueing of messages and bulk send #2

Open richsage opened 12 years ago

richsage commented 12 years ago

This is to avoid being potentially blocked by APNS/C2DM for many connections

sdiaz commented 12 years ago

Are you planning to use for example RabbitMQBundle to create workers in order to deal with a hugh amount of notifications?

richsage commented 12 years ago

@sdiaz to be honest I hadn't got around to thinking how I'd enqueue messages for sending. At the moment there's no expoential backoff capability which would definitely be required for lots of queued messages, so I am open to suggestions for the best way to handle all this :-)

sdiaz commented 12 years ago

In a scalable project we have defined the use of RabbitMQ for dealing with general notifications, while direct ones uses the bundle to push them without queuing as they are few and need a faster delivery.

We also use noSQL to log the activity (easy comparison here)

sdiaz commented 12 years ago

The commercial option is to use Amazon SQS

richsage commented 12 years ago

@sdiaz that's a great diagram :-) The use of workers definitely makes sense. I wonder whether this might be better solved by providing some method of coupling a queue service to the bundle (interface or similar) that would then be able to support RabbitMQ, Gearman or similar at a later date.

jamesrgrinter commented 10 years ago

it wouldn't be a solution for failure/retry/backoff, but using the Symfony kernel terminate event (like Swiftmailer does with its memory spool transport) would be good for executing the slower notifications after the user has received their HTTP response.