Home > Backend Development > PHP Tutorial > PHP scheduled task example tutorial

PHP scheduled task example tutorial

WBOY
Release: 2016-07-25 09:12:26
Original
1067 people have browsed it

Look at how to set up scheduled tasks in uhome: 1. Store all scheduled tasks in the database 2. Every time the user performs an operation or opens a page, a scheduled task is executed in sequence. That is, it is judged in turn and when the time is up, it is executed in the user process. The scheduled task code of uhome is in ./source/function_cron.php The above only analyzes the approximate results of the uhome code on scheduled tasks.

ignore_user_abort() I have thoroughly studied scheduled tasks some time ago, and I think there are many ideas for scheduled tasks, but the most suitable for the Web is the trigger type, which is similar to DZ and PHPWind. It seems that most web applications also do this. Here are a few more Others for reference 1. In order to provide stable triggering, use crontab+wget or ab to provide scheduled access. 2. nohup + php write daemon 3. Write an infinite loop directly in PHP and provide triggering. In this case, you need to use cache or database to assist in launching the loop, and you must use sleep or usleep to control the trigger frequency. 4.crontab+php 5. There are differences in web triggering methods. One is timed triggering and the other is periodic triggering. DZ and PHPWind are both timed triggers. The last one I used is periodic triggering

If you have a host, you must use crontab to execute command line PHP Nothing can be written in code anymore It would be better to use crontab. If you use a loop, it is best to separate the loop from the specific processing program, otherwise the memory will keep increasing.

I found this function -ignore_user_abort in the PHP manual. This function can help us implement scheduled tasks like cron in Linux. Let's take a look at how to implement it. First, let’s look at the PHP manual’s explanation of this function. Description int ignore_user_abort ([ bool $setting ] ) Sets whether a client disconnect should cause a script to be aborted. That is to say, regardless of whether the client closes the browser, the following program will be executed.

Let’s take a look at its parameters: Parameters setting If not set, the function will only return the current setting. This function accepts a parameter to determine whether to enable the ignore_user_abort function.

Look at its return value: Return Values Returns the previous setting, as a boolean. It says here that the previous setting is returned, and it is a bool value. After my testing, this statement is wrong, and the returned value is obviously int type.

How to use this function of php to implement scheduled tasks? You can also use another function, this function is set_time_limit, through set_time_limit0) you can set the running time of the program to unlimited, the default running time of php is 30 seconds, through set_time_limit(0 ) allows the program to execute indefinitely.

Just add ignore_user_abort(1) and set_time_limit(0) before the program is executed. How to write the final program?

Example:

  1. ignore_user_abort(); // run script in background
  2. set_time_limit(0); // run script forever
  3. $interval=30; // do every 15 minutes…
  4. do{
  5. $ fp = fopen('text3.txt','a');
  6. fwrite($fp,'test');
  7. fclose($fp);
  8. sleep($interval); // wait 15 minutes
  9. }while(true );
  10. ?>
Copy code


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template