/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Tidelig timeout for mail
Fra : kasper


Dato : 25-05-09 08:29

Heey allesammen
Jeg har en side med noget mail(), og jeg vil bare gerne vide om
der er en måde at lave så siden ikke får timeout,
lige pt når jeg at sende mail til de 50 af de 750 brugere jeg har
så laver den timeout, er der en måde af gøre det på uden timeout?

//Kasper Helsted

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (25-05-2009)
Kommentar
Fra : Dan Storm


Dato : 25-05-09 08:37

kasper skrev:
> Jeg har en side med noget mail(), og jeg vil bare gerne vide om
> der er en måde at lave så siden ikke får timeout,
> lige pt når jeg at sende mail til de 50 af de 750 brugere jeg har
> så laver den timeout, er der en måde af gøre det på uden timeout?

Tja, du har da en håndfuld muligheder.

Hvis du ikke har shell adgang til scriptet bliver det straks værre -
særligt hvis du kører i safe_mode.

Men et forsøg - du kan skrive dette i starten af dit script:
<?php

ignore_user_abort(true);
set_time_limit(0);


//resten af din kode

?>


Hvis du kører safe_mode, vil ovenstående ikke virke. Og jeg ved ikke
hvor stabilt det kører, hvis du ikke kører safe_mode.
Mange har brugt ovenstående metode til at simulere et cronjob, men jeg
har ikke meget tillid til det...


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

kasper (25-05-2009)
Kommentar
Fra : kasper


Dato : 25-05-09 08:50

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> kasper skrev:
> > Jeg har en side med noget mail(), og jeg vil bare gerne vide om
> > der er en måde at lave så siden ikke får timeout,
> > lige pt når jeg at sende mail til de 50 af de 750 brugere jeg har
> > så laver den timeout, er der en måde af gøre det på uden timeout?
>
> Tja, du har da en håndfuld muligheder.
>
> Hvis du ikke har shell adgang til scriptet bliver det straks værre -
> særligt hvis du kører i safe_mode.
>
> Men et forsøg - du kan skrive dette i starten af dit script:
> <?php
>
> ignore_user_abort(true);
> set_time_limit(0);
>
>
> //resten af din kode
>
> ?>
>
>
> Hvis du kører safe_mode, vil ovenstående ikke virke. Og jeg ved ikke
> hvor stabilt det kører, hvis du ikke kører safe_mode.
> Mange har brugt ovenstående metode til at simulere et cronjob, men jeg
> har ikke meget tillid til det...
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.

Ok tak, skal prøve det :D

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Johan Holst Nielsen (25-05-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 25-05-09 10:52

Dan Storm wrote:
> kasper skrev:
>> Jeg har en side med noget mail(), og jeg vil bare gerne vide om
>> der er en måde at lave så siden ikke får timeout,
>> lige pt når jeg at sende mail til de 50 af de 750 brugere jeg har
>> så laver den timeout, er der en måde af gøre det på uden timeout?
>
> Men et forsøg - du kan skrive dette i starten af dit script:
> <?php
>
> ignore_user_abort(true);
> set_time_limit(0);
> ?>
>
>
> Hvis du kører safe_mode, vil ovenstående ikke virke. Og jeg ved ikke
> hvor stabilt det kører, hvis du ikke kører safe_mode.
> Mange har brugt ovenstående metode til at simulere et cronjob, men jeg
> har ikke meget tillid til det...

Det er ikke den løsning jeg bryder mig om (ligesom dig). Ville nok
foretrække noget ala


<?php
$limit = 25;
$alleMails = array(...);

$start = ($_GET['s'] != '') ? $_GET['s'] : 0;

/* Alternativt kan der bruges LIMIT $start, $limit i SQL'en */
$sendTilMail = array_slice($alleMails,$start,$limit);
if(empty($sendTilMail)) {
die('Mail er sendt ud nu :)');
}


/* Send mails her */

header("Location: ./scriptnavn.php?s=".($start+$limit));
?>


Mvh
Johan

Dan Storm (25-05-2009)
Kommentar
Fra : Dan Storm


Dato : 25-05-09 11:00

Johan Holst Nielsen skrev:
> <?php
> $limit = 25;
> $alleMails = array(...);
>
> $start = ($_GET['s'] != '') ? $_GET['s'] : 0;
>
> /* Alternativt kan der bruges LIMIT $start, $limit i SQL'en */
> $sendTilMail = array_slice($alleMails,$start,$limit);
> if(empty($sendTilMail)) {
> die('Mail er sendt ud nu :)');
> }
>
>
> /* Send mails her */
>
> header("Location: ./scriptnavn.php?s=".($start+$limit));
> ?>

Ja, det var også en udmærket idé - og ganske sikkert også mere stabil og
pålidelig end det andet makværk jeg fik sat sammen... :)


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste