![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 28.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Posiadam serwer wirtualny na ovh. Mam na nim dostęp do crona z najczęstszym wywołanie co godz. Chcę wysłać około 10 000 maili dziennie. Problem w tym że ovh udostępnia tylko funkcje mail() i blokuje SMTP(PhpMailer nie działa). Czy ktoś ma pomysł jak zorganizować taka wysyłkę maili z wykorzystaniem crona i bez robienia paczek. Czy skrypt który będzie miał 500 razy wywołana funkcje mail nie spowoduje zablokowanie konta lub przeciążenia serwera? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Myślę, że przy takim odświeżaniu najlepiej zrobić sobie skrypt odpalający sam siebie. Za jednym uruchomieniem cron i standardowym czasem trwania skryptu 30 sekund poślesz może 200-500 maili, zależnie od tego co w mailingu robisz i jak obrabiasz treść. Przy 24 odpaleniach na dobę moższ nie uzyskać 10k maili. By to osiągnąć musisz obejść 30 sekundowy limit trwania skryptu. Nawet na forum tu kiedyś pisałem prawie gotowca jak to zrobić. Chodzi o to, by skrypt po wysłaniu iluś maili uruchamiał sam siebie jako "nowy wątek" a stary zamykał. Robiłby to tak długo, aż nie zakończyłby wysyłki. A to czy wysłałby 1.000 czy 100.000 to już nieważne dla niego. Istotną wadą tego rozwiązania jest niemożliwość zatrzymania tego skryptu w zasadzie inaczej niż użycie kill w powłoce lub restart usługi, więc to ryzykowne zagrane bez dokładnego sprawdzenia i przemyślany warunek STOP jest tu niezbędny bo inaczej zajedziesz serwer.
@Capker... Przeczytaj posta kolegi dokładnie... Ma Crona do wywołania co godzinę jedynie a nie co 5 minut. Takie kolejkowanie więc nie ma sensu, bo 50 maili co godzinę nie zda egzaminu. Skrypt musi być uruchomiony raz, ale nie może zostać zatrzymany po 30 sekundach przez serwer jako "nie odpowiadający" czy "zawieszony". Może zajść sytuacja, że będzie musiał pracować kilka minut, na co niemal żaden usługodawca nie pozwala. Tak więc rozwiązanie z wywoływaniem rekurencyjnym skryptu jest moim zdaniem jednym z nielicznych, o ile nie jedynym jakie dało by radę to zrobić. Ten post edytował thek 11.10.2009, 10:18:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 09:10 |