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:
|