Puncte:0

Salvați mai multe entități într-o singură tranzacție

drapel br

Avem un punct final API personalizat care gestionează date pentru mai mulți utilizatori. Din păcate, avem o problemă de performanță, deoarece de fiecare dată când salvăm o entitate utilizator, operația de salvare durează 3-4 secunde. Evident, acest lucru este mai puțin decât ideal, deoarece 10 utilizatori vor avea nevoie de 30-40 de secunde pentru a finaliza întreaga solicitare...

Există o modalitate de a salva mai multe entități simultan (cum ar fi puteți încărca mai multe simultan) sau aceasta este doar o altă problemă de performanță slabă a Drupal cu care trebuie să trăim?

drapel cn
Sunt destul de sigur că nu există nicio metodă pentru asta în core; entitatea utilizator are multe câmpuri pe site-ul tău? Alte entități (diferite tipuri, cum ar fi nodul) cu un număr similar de câmpuri au nevoie de același timp pentru salvare? Măsurați solicitarea completă la 3-4 secunde sau ați profilat opțiunea de salvare a utilizatorului în mod specific la acea lungime? Dacă prima, ar trebui să puteți deduce o secundă sau două din estimarea pentru fiecare entitate, deoarece aceasta va fi o singură solicitare generală.
BlondeSwan avatar
drapel br
depinde de ceea ce considerați „o mulțime de câmpuri”, avem aproximativ 80 de câmpuri pe obiectul nostru utilizator. Totuși, în acest punct final, actualizăm doar 5 dintre aceste câmpuri: 2 referințe cu valori multiple și 3 câmpuri cu text cu valori multiple.
BlondeSwan avatar
drapel br
Aceasta este doar salvarea utilizatorului. Durează aproximativ 3-4 secunde pentru ca `JSON::decode($request->getContent)` să ruleze, astfel încât să pot lucra cu datele (ceea ce este îngrozitor), apoi
drapel cn
Da, sunt o mulțime de domenii, dar de fapt, în teorie, nu ar trebui să conteze (https://drupal.stackexchange.com/a/234475/2800). Cel mai bun sfat pe care îl pot da pentru profilarea operațiunii de salvare și pentru a afla unde este petrecut timpul - s-ar putea să nu fie o bază de date, ceea ce sper să vă ofere alte fire de urmat pentru a o îmbunătăți, dar oricum ați ști
BlondeSwan avatar
drapel br
Operația de salvare în sine durează 3-4 secunde.
drapel cn
Mă refeream la [profil un pic mai științific](https://xdebug.org/docs/profiler), asta vă va arăta unde este cu adevărat petrecut timpul. Dacă aveți noroc, furnizorul dvs. de găzduire ar putea avea ceva de genul New Relic disponibil

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.