Wiadomo że wszystko ma jakieś granice, ilość writów / selectów SQL, wysłanych maili itd itd.
Granice te są wyraźnie określone i monitorowane przez CBA a przekroczenie ich
automatycznie skutkuje przykrymi konsekwencjami jak blokada wysyłania maili,
blokada strony, niemożność połączenia z SQL itd. (co oczywiście jest zrozumiałe i jak najbardziej właściwe)
Nie mniej, w czasie kiedy na użytkownika nieuchronnie czekają pewne dość dotkliwe konsekwencje
w razie przekroczenia tych granic, ma on
blade albo wprost żadne pojęcie gdzie są te granice
a przede wszystkim
jak daleko się od nich aktualnie znajduje.
Dlatego często ma się wrażenie podobne do chodzenia po polu minowym z zawiązanymi oczami,
i zastanawiania się co się stanie kiedy na stronę wejdzie więcej użytkowników jednocześnie.
Wiedza na temat tych granic a przede wszystkim aktualnego stanu ich wykorzystania,
jest chyba jedyną rzeczą której osobiście mi zawsze brakuje na CBA
zwłaszcza że dużo grzebię w kodzie i możliwość wglądu w te dane byłoby bardzo przydatne.
Poczynając od optymalizacji kodu z myślą o jak najlepszej oszczędności zasobów
a kończąc na własnych zabezpieczeniach strony które w razie zbliżenia do którejś z granic
włączały by dodatkową optymalizację bądź dynamicznie blokowały pewne funkcje aby nie dopuścić
do zablokowania strony z automatu (czyli nieoczekiwanego padnięcia wszystkiego w najmniej odpowiednim momencie)
Idealnie gdyby była to np. jakaś funkcja PHP zwracająca array wypełniony aktualnymi danymi wykorzystania zasobów
przydzielonych stronie z której została wywołana, a które mają kluczowe znaczenie w działaniu strony gdzie
przekroczenie ich skutkuje jakimiś konsekwencjami
Dla przykładu, wywołanie przez daną stronę
getAccountResourceUsage(); mogłoby zwracać coś w stylu
Kod: Zaznacz cały
array ("mailsSentPerHour_Max" => 1000,
"mailsSentPerHour_Current" => 5,
"mailsSentPerHour_Comment" => "Przekroczenie skutkuje blokada wysylania maili na 48h",
"sqlUpdatesPerCostam_Max" => 8000,
"sqlUpdatesPerCostam_Current" => 215,
"sqlUpdatesPerCostam_Comment" => "Przekroczenie skutkuje blokadą SQL na 1h",
"sqlSelectPerCostam_Max" => 100000,
"sqlSelectPerCostam_Current" => 24000,
"sqlSelectPerCostam_Comment" => "Przekroczenie skutkuje czymś tam na 4h",
"httpMaxRequestsPerCostam_Max" => 100000,
"httpMaxRequestsPerCostam_Current" => 24000,
"httpMaxRequestsPerCostam_Comment" => "Przekroczenie skutkuje czymś tam 1h",
"itd, itd"
);
Ogólnie
w tabeli znajdowałyby się pewne wybrane, istotne dane o wykorzystaniu pewnych kluczowych zasobów strony
(ilość writów / selectów SQL, wysłanych maili itd.)
(czyli danych w których jesteście posiadaniu a które pomimo że
są bardzo ważne dla użytkownika
są mu 'udostępniane' po fakcie w formie 'blokady strony z powodu przekroczenia jakiegoś bliżej nieokreślonego limitu').
Gdybyście coś takiego zaimplementowali to byłby naprawdę git i super użyteczna sprawa,
która wielu użytkownikom pozwoliła by na uniknięcie zaskoczenia
i optymalizację strony aby nie dochodziło do przekraczania żadnego z tych limitów.