Home > Backend Development > PHP Tutorial > How to solve the problem of PHP scheduled sending service

How to solve the problem of PHP scheduled sending service

不言
Release: 2023-04-01 09:44:01
Original
1694 people have browsed it

This article mainly introduces the solution to the PHP scheduled sending service. Friends who need it can refer to it

##1. Timed sending task analysis

When developing mobile APP or WeChat, there are often scenarios where messages need to be pushed regularly.

Scheduled sending is divided into two types:

One is to fix the time during development, and the background manager can only choose the messages to be pushed;

The other is that the background administrator can freely choose the time and message to push;

2. Solution

PHP itself is Scheduled sending is not supported because PHP is a scripting language. In most cases, the browser is closed and PHP will not execute. Most of the time it relies on some little external thing.

 

1. Fixed time

Most server systems are windows or linux.

Linux: Use CronTab to execute php regularly

First, enter the command line mode. As a server, Linux generally enters the command line mode by default. Of course, our management server also generally connects to the server remotely through tools such as putty. For convenience, we log in as the root user. Type in the command line:

 crontab -e
Copy after login

After that, a file will be opened, and it is in a non-editing state. It is the editing interface of vi. By pressing i on the keyboard , enter the editing mode, and you can edit the content. Each line in this file is a scheduled task. When we create a new line, we create a new scheduled task (of course it means that this line is written in a certain format). Let's take an example now and add a line with the following content:

00 * * * * lynx -dump https://www.yourdomain.com/script.php
Copy after login

What does this mean? In fact, the above line consists of two parts, the first part is the time, and the latter part is the operation content. For example, the above one,

00 * * * *
Copy after login

, means that when the minutes of the current time are 00, the scheduled task will be executed. The time part consists of 5 time parameters, which are:

                                         n minutes, for example */8 means every 8 minutes, and the following is also analogous

                                                                       ''                                                                       wealth Numbers ’ means every 8 minutes | The following is also the same analogy

                              」   iety The column represents the month 1~12

                                                   credulous , The fifth column identifies the day of the week 0~6 (0 represents Sunday]

                                                        ccogate us us in the identification number of the week 0~6 (0 represents Sunday)

The last part of the entire sentence is the specific content of the operation.

lynx -dump https://www.yourdomain.com/script.php
Copy after login

It means accessing this url through lynx. We mainly use lynx, curl, and wget to achieve remote access to URLs. If we want to improve efficiency, directly using PHP to execute local PHP files is the best choice, for example:

00 */2 * * * /usr/local/bin/php /home/www/script.php
Copy after login

This statement can execute script.php through the Linux internal php environment at 0 minutes every 2 hours. Note that this is not accessed through the url, but executed through the server environment. It is executed directly, because it bypasses the server environment, so the efficiency is of course much higher.

     Okay, a few required scheduled tasks have been added. Click the Esc key on the keyboard, enter ":wq" and press Enter. This saves the set scheduled task, and you can also see a prompt on the screen that a new scheduled task has been created. The next step is to write your script.php properly.

Windows:


There is a similar cmd and bat file on Windows and Linux. The bat file is similar to a shell file. Executing this bat file is equivalent to executing the commands inside in sequence (of course, you can also Programming is implemented through logic), so we can use the bat command file to implement PHP scheduled tasks on the windows server. In fact, the principle of scheduled tasks on Windows is the same as that on Linux, but the methods and approaches are different. Okay, let’s get started.

                                   cessoverly\/

#
D:\php\php.exe -q D:\website\test.php
Copy after login

What this sentence means is that using php.exe to execute the php file test.php is the same as the contab above, bypassing the server environment, and the execution efficiency is also relatively high high. After writing, click Save and close the editor.

The next step is to set up a scheduled task to run cron.bat. Open in sequence: "Start -> Control Panel -> Task Schedule -> Add Task Schedule", set the time and password of the scheduled task in the opened interface, and mount cron.bat by selecting it. OK, in this way, a scheduled task is created. Right-click on the scheduled task and run. The scheduled task will start to be executed. When the time is up, cron.bat will be run for processing, and cron.bat will execute php.

2. Freely choose the time

The commonly used blogging system wordpress has a wp-corn file to perform scheduled posting of blogs. The blogger uses wp-corn as the prototype to write a file.

  wp-corn is a strategy that consumes server resources very much. When everyone visits the blog, the wp-corn file will be called (read the current server time and determine whether to send it). The disadvantage is that it cannot be sent in time when the number of visitors is relatively small. If there are too many visitors, the server performance will be reduced.

When the blogger was working on the project, the company provided a windows server. The method used is to open a page on the server and automatically refresh it every minute (simple js script, no code is provided).

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

PHP’s predefined interface analysis

# #

The above is the detailed content of How to solve the problem of PHP scheduled sending service. For more information, please follow other related articles on the PHP Chinese website!

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