RMSPushNotificationsBundle icon indicating copy to clipboard operation
RMSPushNotificationsBundle copied to clipboard

Add queueing of messages and bulk send

Open richsage opened this issue 13 years ago • 6 comments

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

richsage avatar Jun 25 '12 13:06 richsage

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

sdiaz avatar Jul 20 '12 09:07 sdiaz

@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 :-)

richsage avatar Jul 23 '12 16:07 richsage

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 avatar Jul 24 '12 06:07 sdiaz

The commercial option is to use Amazon SQS

sdiaz avatar Jul 24 '12 06:07 sdiaz

@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.

richsage avatar Aug 03 '12 16:08 richsage

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.

jamesrgrinter avatar Oct 25 '13 12:10 jamesrgrinter