Kom ihåg mig?
Home Menu

Menu


fördröjning

Ämnesverktyg Visningsalternativ
Oläst 2009-03-28, 15:32 #1
vidirs avatar
vidir vidir är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 291
vidir vidir är inte uppkopplad
Medlem
vidirs avatar
 
Reg.datum: Jan 2004
Inlägg: 291
Hej!

jag har en lite funktion som skickar ut email till medlemmar som har inte loggat in (inloggs '0')

problemet jag upplever nu är att det är för många mail samtidigt, skulle behöva en typ av "skicka bara 10 åt gången och vänta par sekunder nästa 10" osv..

Vet inte bara hur man inplementerar det i nedanstående.


$result=mysql_query("select * from site_member WHERE inloggs ='0'");
while ($rad = mysql_fetch_array($result)) {
$id = $rad["id"];
$namn = $rad["namn"];
$email = $rad["email"];

?>
vidir är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 16:00 #2
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
http://se2.php.net/sleep
MMC är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 16:18 #3
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
OT: skriv gärna lite bättre ämnesrader i forumet.
"fördröjning vid utskick av mail" hade varit lämpligt i detta fall.
allstars är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 18:32 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Har du väldigt många utskick får du nog köra scriptet i omgångar med crontab.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 20:06 #5
mr_lundis mr_lundis är inte uppkopplad
Medlem
 
Reg.datum: May 2006
Inlägg: 218
mr_lundis mr_lundis är inte uppkopplad
Medlem
 
Reg.datum: May 2006
Inlägg: 218
Den inbyggda mail funktionen i PHP är ingen höjdare om man vill göra stora utskick. Ta en titt på Swift Mailer eller kanske Zend_Mail istället.

http://swiftmailer.org/
http://framework.zend.com/manual/en/zend.mail.html
mr_lundis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 20:17 #6
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Citat:
Originally posted by mr_lundis@Mar 28 2009, 18:06
Den inbyggda mail funktionen i PHP är ingen höjdare om man vill göra stora utskick.
Hur menar du då?
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-28, 20:51 #7
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
Citat:
Ursprungligen postat av eliasson
Citat:
Ursprungligen postat av mr_lundis
Den inbyggda mail funktionen i PHP är ingen höjdare om man vill göra stora utskick.
Hur menar du då?
Den öppnar bland annat en ny SMTP-anslutning för varje mail, vilket ju inte är särskilt optimalt. PHPMailer är ju den vanligaste PHP-klassen för mail.
MMC är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-31, 11:10 #8
vidirs avatar
vidir vidir är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 291
vidir vidir är inte uppkopplad
Medlem
vidirs avatar
 
Reg.datum: Jan 2004
Inlägg: 291
Tack allihopa, funktionen heter ju "sleep", man lär sig altid något nytt

jag använder nu även cron för att köra funktionen i gång i månaden och det kan röra sig om 500 mail den ena gången och 30 mail nästa osv.

Jag satte sleep värdet på 1 sekund mellan varje enskilt mailutskick och det verkar funka bra på webbkontot jag har.

PS! dock hittade jag inte sleep exempel på hur man skickade ut en klunga åt gången..
vidir är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-31, 12:23 #9
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Kod:
if(fmod($i, 2) == 0) { sleep(1) }
Där sover han 1 sekund efter varannat utskick.
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-31, 14:56 #10
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by vidir@Mar 31 2009, 10:10
Tack allihopa, funktionen heter ju sleep, man lär sig altid något nytt
jag använder nu även cron för att köra funktionen i gång i månaden och det kan röra sig om 500 mail den ena gången och 30 mail nästa osv.
Jag satte sleep värdet på 1 sekund mellan varje enskilt mailutskick och det verkar funka bra på webbkontot jag har.
PS dock hittade jag inte sleep exempel på hur man skickade ut en klunga åt gången..

Varför inte fortsätta köra via Cron?

Fast du hämtar 100st mail åt gången varje gång och skickar ut?

Låt säga att du kör scriptet var 5:e minut, var 5:e minut hämtar scriptet 100 poster och skickar mail till dessa. 5 minuter efter det hämtar det 100 poster till. Och flaggar dom som du skickat till.

Nu är 100st ett exempel, 250 alt. 500 st duger lika bra.

1 sekund och du skickar 500st mail, det är 8minuter extra vänte tid.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:48.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017