Bonjour à tous.
J'espère que vous vous portez bien.

Je suis dans une phase ou je n'arrive pas à débuger un bug qui a l'air très simple.. Mais à force de rester des heures devant le code, on finit par se perdre sois-même. Du coup j'ai besoin de votre aide précieuse.

En gros je travail sur un projet Symfony avec Expo Notification. J'aimerais envoyer des notifications pushs (ce qui fonctionnent super bien.) le problème c'est que le projet commence à grossir et j'ai 890 membres qui veulent des notifications.

Mon soucis ? : Expo ne peut envoyer que 100 notifications par 100 notifications. Comment puis-je séparer ma requête pour quelle s'exécute tout les 100 users (j'ai un tableau $usersNotificationsArray avec mes 890 membres.)

Pour moi il faudrait foreach ce tableau, et tout les 100 users renvoyer la requête, mais j'ai aucune idée de comment écrire ça.

D'avance, merci de votre aide précieuse. :-)
Bon week-end.

4 réponses


MickaelTD
Réponse acceptée

Salut,

ca fait un bail que j'ai pas fais de php mais je penses que tu peux tenter un truc comme ça, ca devrait fonctionner.

$chunkSize = 100;

for ($i = 0; $i < $usersNotificationArray.count; $i += chunkSize) {
    $chunk = array_slice($usersNotificationArray, $i, $i + $chunkSize);
   (new Expo)->send($messages)->to($chunk)->push()
}
MickaelTD
Réponse acceptée

En regardant un peu la doc je viens de voir qu'il y avait peut être mieux.

$chunkSize = 100;
$arrayOfChunks = array_chunk($usersNotificationArray, ceil($usersNotificationArray / $chunkSize));
foreach ($arrayOfChunks as $chunk) {
   (new Expo)->send($messages)->to($chunk)->push();
}

Une image aussi. :-)

https://ibb.co/jft9SHJ

Bonjour,

@MickaelTD un GRAND merci pour votre aide précieuse ! En effet, votre deuxième solutions fonctionnent à merveille.

Merci beaucoup et bon week-end. J'aurais encore appris quelques choses ;-)

À bientôt.
Louis