Je souhaite faire une sorte de multithreading dans un environnement PHP8/Symfony6 et cela fonctionne comme ceci :
Je fais une demande principale qui dessert environ un million de lignes
Je souhaite créer plusieurs processus parallèles pour traiter les lignes en même temps. Ma requête se fait via getResult() qui sert l'objet doctrine. Existe-t-il un moyen de créer un thread avec un tableau d'objets comme paramètre. Puis créer des fils de discussion chaque fois que ma « file d'attente » est remplie de données ?
J'ai trouvé quelques informations sur "pthreads" ou "popen" mais je ne sais pas si c'est toujours d'actualité car le sujet date un peu
Dans ce cas, l'une des choses que Doctrine fait est d'hydrater une classe avec le contenu des données, de sorte que les millions d'enregistrements soient convertis en classes et les conservent en mémoire, donc quelques suggestions : p>
Vous pouvez également utiliser une boucle
fetchAll
方法一次获取所有用户,但请注意,如果您的查询返回太多用户,则可能会耗尽内存。使用上面的while
, vous ne récupérez qu'un seul utilisateur en mémoire à la fois, les performances de la mémoire sont donc meilleures.Comme quelqu'un l'a commenté, vous pouvez utiliser