We have an android and iOS application to which we send around 10 different types of notifications in a day. Currently we are using an architecture in which we run a cron to schedule the notification at some time time and after that we run a separate cron for sending message. The problem being faced is that as the users have increased the scheduling and sending processes take several hours which doesn't allow us to send the notifications at the desired time. We are using php and MySQL.
Is their some other architecture or technology which would reduce the time being taken for this activity?
[Edit]
This question is concerned more abut the back end architecture that can be used in house depending upon third party unlike that in Is GCM service reliable for large scale push notification?