954,135 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

PHP and scheduled tasks

Have you ever seen (or played) one of those "Browser Games" where you build stuff, create armies and fight other players? Right now I need to know how to do those scheduled tasks...

I'm building a PHP appilcation for my job. I work at a visitors center and I want to create an application where you can add visits and let a worker to "add himself" to the shift. The server should perform some automated tasks like finishing the "registration" period for a shift and deleting or archiving a Visit after it has ocurred.

Would you mind pointing out how to do that with PHP?

P.S.: If there is an open source application similar to mine out there, I could use a link to it :cheesy:

Lothas
Newbie Poster
4 posts since Jan 2007
Reputation Points: 10
Solved Threads: 0
 

You have two choices:Set up a cron job for the routine script
Call the routine on a common page (like index.php), save a time when it's executed and check against that so you can limit the execution times

The cron job option seems to make more sense.

php_daemon
Junior Poster
140 posts since Aug 2006
Reputation Points: 13
Solved Threads: 2
 

a cron job would be the ideal case, check with your host to see if they allow them.

paradox814
Posting Whiz
351 posts since Oct 2004
Reputation Points: 13
Solved Threads: 4
 
You have two choices:
  • Set up a cron job for the routine script
  • Call the routine on a common page (like index.php), save a time when it's executed and check against that so you can limit the execution times
The cron job option seems to make more sense.

If you want to call the routine job from a webpage, try this method I've blogged about: http://fijiwebdesign.com/content/view/86/77/


It allows you to set the job without delaying the sending of the web page to the user. Thus your job can go on for minutes or even hours (if your server allows it) and the user had no idea they initiated a routine job on your server.

digital-ether
Nearly a Posting Virtuoso
Moderator
1,293 posts since Sep 2005
Reputation Points: 461
Solved Threads: 101
 

If you want to call the routine job from a webpage, try this method I've blogged about: http://fijiwebdesign.com/content/view/86/77/

It allows you to set the job without delaying the sending of the web page to the user. Thus your job can go on for minutes or even hours (if your server allows it) and the user had no idea they initiated a routine job on your server.

Nice article. I didn't know about a possibility of performing tasks after rendering the page. Just got up and already learned something. Thanks. :D

I got a question though about the first method of using exec. Wouldn't it be a better idea to use the php CLI as opposed to wget? I mean the CLI version overrides the max_execution_time to unlimited while running it with wget it falls under the restriction (unless you set it in your script).

php_daemon
Junior Poster
140 posts since Aug 2006
Reputation Points: 13
Solved Threads: 2
 

If you want to call the routine job from a webpage, try this method I've blogged about: http://fijiwebdesign.com/content/view/86/77/

It allows you to set the job without delaying the sending of the web page to the user. Thus your job can go on for minutes or even hours (if your server allows it) and the user had no idea they initiated a routine job on your server.

why not just use

exec( 'php /home/username/routine_task.php > /home/username/routine_task.log &' );


using php allows you the ability to keep the code away from website so the code is not public (ie there is no need to place it in the public_html folder, it can be placed anywhere). No one will ever see, and you don't need any ie hacks.

Also since everything is now only related to your cron job why port everything to /dev/null ? I would recommend porting everything to say routine_task.log that way every day there is a log (that is overwritten so it will never grow to large in terms of the number of logs) of any errors that occurred on that script allowing you to fix any mistakes.

paradox814
Posting Whiz
351 posts since Oct 2004
Reputation Points: 13
Solved Threads: 4
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You