![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 30 Dołączył: 22.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
potrzebuje wysłać kilkadziesiąt tysięcy maili, chciałem zapisać sobie wszystkie maile do spoola typu file (czyli do plików) i potem wysłać w cronie. Problem jest taki że 200 maili do spoola ładuje sie 30min a ich wielkości są bardzo różne pomimo, że zawartość to pięć identycznych dla każdego maila obrazków w sumie ważących niecałe 200KB, a wielkości generowanych plików w spoolu wacha się od 50MiB do 247KiB jest to dla mnie niezrozumiałe :/ oto kawałek mojego kodu i config
Domyślam się że coś namieszałem tylko co? Nie wiem czemu nie mogę edytować tematu w zawartości mam same krzaczki więc piszę niżej ![]() Dodałem do konfiga:
Teraz jest o wiele lepiej 100 maili generuje się około minuty tylko nadal pliki są spore, chodź ich wielkość spadło o połowę. Teraz 100 wygenerowanych w spoolu message waży 1GiB więc średnio 10MiB wiadomości, a powinna co-najmniej 20 razy mniej ![]() Ten post edytował prz3kus 1.04.2016, 08:48:41 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Co do czasu generowania to nie wiemy na czym to uruchamiasz, więc może jest całkiem krótki.
W plikach powinny być zserialozowane wiadomości. Jeżeli rozmiary są takie duże to być może, pojawia się jakiś błąd i serializowany jest cały kontener (choć i tak wydaje się to dużo) lub jakiś var_dump. Nie wiem co może być źle, bo nie mam doświadczenia. Mogę Ci zaproponoważ wykonanie tej pętli bez użycia funkcji send, a do plików html zapisuj wynik funkcji renderView. Możesz też w pętli serializować wiadomość i sprawdzać rozmiar, czy też są takie problemy. Możesz też spróbować odserializować plik ze spool (np. z największym rozmiarem) i sprawdzić co w nim siedzi. Podziel się wynikami eksperymentów. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 30 Dołączył: 22.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Na końcu każdej wiadomości dodaje coś takiego:
Cytat s:37:"\0Swift_Mime_SimpleMimeEntity\0_encoder";O:47:"Swift_Mime_ContentEncoder_QpContentEncoderProxy":3:{s:60:"\0Swift_Mime_ContentEncoder_QpContentEncoderProxy\0safeEncoder";O:42:"Swift_Mime_ContentEncoder_QpContentEncoder":3:{s:14:"\0*\0_charStream";O:39:"Swift_CharacterStream_NgCharacterStream":9:{s:52:"\0Swift_CharacterStream_NgCharacterStream\0_charReader";N;s:59:"\0Swift_CharacterStream_NgCharacterStream\0_charReaderFactory";r:14;s:49:"................... I ta linijka waży czasem kilka MiB sama reszta wiadomości to 10KiB. I czasem te linijka mam 200KiB a czasem 50MiB Dziwny jest ten świat ![]() Sprawa się wyjaśniła za każdym razem trzeba w pętli uruchamiać Cytat $message = \Swift_Message::newInstance(); inaczej ciągle dodawał mi Headers maila do ostatnio utworzonego pliku, dlatego pliki mi rosły dzięki destroyerr za próbę pomocy Pozdrawiam czas na weekend ![]() EDIT:123213 Jeszcze napiszę, że teraz zapisuję sie do spolla w minutę ponad 2000 wiadomości ![]() Ten post edytował prz3kus 1.04.2016, 13:27:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:16 |