Your first solution is prone to memory leaks and your second is just a pain
(INHO).

> Is there a third alternative?

Sure.  Create a cron that runs every hour (or less) and checks for scheduled
mail to send.  All you need to do is have some sort of persistant storage
(file or preferably a DB) to store your schedule.  Each hour a cron launches
your send script which queries the schedule (On Oracle: Select * from
schedule where send_time > Sysdate), then iterates through each sending a
mail.

Rob

-----Original Message-----
From: Scot Robnett [mailto:[EMAIL PROTECTED]
Sent: Thursday, July 03, 2003 1:50 PM
To: [EMAIL PROTECTED]
Subject: Running process in background?


I'm setting up a mailing subroutine for one of my customers that will send
mail based upon a delay of X amount of hours (selected via web form).

If I use something like:

  sub send_on_schedule {
   my $hours = $q->param('delay');
   my $sleeptime = $hours * 3600; # how many seconds?
   my @addresses = ('[EMAIL PROTECTED]','[EMAIL PROTECTED]'); # from a DB
   sleep $sleeptime;
   foreach my $address(@addresses) {
    some_mail_sending_routine($address);
   }
  }

then my script/process could technically be running for 24 hours before
sending the mail. I want to allow the delay, but I don't think it's a good
idea for that process to be running the entire time.

I gave some thought to using a cron job, but basically what would have to
happen is that in every instance, I'd have to create a crontab, run the
cron, then destroy it again. Still, this might be better.

Is there a third alternative? Suggestions please? Thanks.

-----
Scot Robnett
inSite Internet Solutions
[EMAIL PROTECTED]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to