Re: Individual bulk e-mails - performance question (was "skinning a cat") :-)
| From: | Robert Cummings | Date: | Mon, 01 Sep 2008 17:07:47 +0000 |
| Subject: | Re: Individual bulk e-mails - performance question (was "skinning a cat") :-) | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-279228@lists.php.net to get a copy of this message | ||
On Mon, 2008-09-01 at 14:34 +0200, Merlin Morgenstern wrote:
> Per Jessen schrieb:
> > Jochem Maas wrote:
> >
> >>> lockfile=/var/lock/<xxxx>/file
> >>> # clear out a lock older than 60mins
> >>> find $lockfile -cmin +60 | xargs rm
> >>> test ! -f $lockfile && (
> >>> touch $lockfile
> >>> <run some php>
> >>> rm -f $lockfile
> >>> )
> >> wouldn't creating a dir be better here? (with regard to atomicity)
> >>
> >
> > I haven't thought it through, but I don't think it would change
> > anything.
> >
> >
> > /Per Jessen, Zürich
> >
>
> Hello everybody,
>
> thank you for the huge amount of replies on my question. I believe I
> quite lost a bit track on how to solve the problem hands on. To
> summerize, there are aparently two ways of skinning the cat :-)
>
> 1. Run a deamon
> I admit I have never wrote one, and that seems therefore to be the
> harder option for me. Well... perhaps not.
> I assume it is simply creating a shell script like Jochem wrote, however
> I guess it would just take longer for me to get it running as I have
> never done that before.
>
> 2. Create a PHP file that holds some lock code which is triggered by
> CRON every 5 minutes. Taking the example from Robert.
>
> 3. Following idea which I am now actually implementing :-)
>
> - Add all emails into a mysql db with one insert command.
> - Run a php script by cron every 5 min that does the following:
> - update table, set session_id = x on all entries without session id
> - get all entries with that session ID
> - send email to those with that session ID
> - remove all entries with that session ID
>
> Looks like easies sollution on how to skimm the cat. DB might not be the
> most performing sollution, but sufficient considering the hard ware power.
Actually 3 was what I suggested with a lock mechanism to ensure that if
your script run by cron takes longer than 5 minutes that you don't have
two scritps stepping on each others' toes.
Cheers,
Rob.
--
http://www.interjinn.com
Application and Templating Framework for PHP