Paul A Houle wrote:
Matt Juszczak wrote:
The term "REST" is an early predictor for project failure a year
or two down the road. More than once I've been the guy who cleans
up the mess after somebody ignorantly blunders into using "REST" for
something that it's not appropriate for.
Well, we didn't go that route. We had three choices: Put database
logic inside the webserver code base, put it in the database, or put
it somewhere in the middle. We decided on putting it in the
database, which ties us to using MySQL, but allows us to write a lot
more front ends a lot easier.
The architecture where "multiple processes communicate with a
shared database" gets less credit than it deserves. In your case I
think there's no reason you can't write your batch scripts in PHP:
pretty commonly I write command line scripts that run as cron jobs...
In that situation, you can use
http://php.net/manual/en/function.pcntl-fork.php
to fork the same way you would in Perl. I tend to do long-running
tasks as cron jobs that are scheduled to run for a certain time (maybe
4 minutes) and that get respawned every so often (say 5 minutes.) You
do need some logic to prevent them from getting stacked up when things
go wrong, but this works pretty well.
My initial approach used cron jobs, but then one day things did stack up
under high volume and I ended up rewriting the mail engine to run under
CLI using the Pear System_Daemon library. Works like a charm now. Sleep
for one minute, then check for any new unsent emails in the queue and
process. As a bonus, I was able to throw in some functions that manage
events and triggers based on specific times or elapsed time periods.
~Rolan
_______________________________________________
New York PHP Users Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
http://www.nyphp.org/Show-Participation