Ich möchte eine Art Multithreading in einer PHP8/Symfony6-Umgebung durchführen und es funktioniert so:
Ich stelle eine Hauptanfrage, die etwa eine Million Zeilen bedient
Ich möchte mehrere parallele Prozesse erstellen, um die Zeilen gleichzeitig zu verarbeiten. Meine Anfrage erfolgt über getResult(), das das Doctrine-Objekt bedient. Gibt es eine Möglichkeit, einen Thread mit einem Array von Objekten als Parameter zu erstellen? Dann Threads erstellen, wann immer meine „Warteschlange“ mit Daten gefüllt ist?
Ich habe einige Informationen zu „pthreads“ oder „popen“ gefunden, bin mir aber nicht sicher, ob sie noch relevant sind, da das Thema schon etwas alt ist
在这种情况下,Doctrine 所做的事情之一就是用数据内容水合一个类,因此所有数百万条记录都会转换为类并将它们保存在内存中,因此有几个建议: p>
您还可以使用
fetchAll
方法一次获取所有用户,但请注意,如果您的查询返回太多用户,则可能会耗尽内存。使用上面的while
循环,您一次仅将一个用户提取到内存中,因此内存性能更好。正如有人评论的那样,你可以使用