Home Backend Development PHP Tutorial Application scenarios of queue delayed tasks and scheduled tasks in PHP and MySQL

Application scenarios of queue delayed tasks and scheduled tasks in PHP and MySQL

Oct 15, 2023 pm 12:46 PM
mysql php scheduled tasks queue Delay tasks

Application scenarios of queue delayed tasks and scheduled tasks in PHP and MySQL

Application scenarios of queue delayed tasks and scheduled tasks in PHP and MySQL

Introduction:
With the development of the Internet, for real-time and high concurrency The demands are getting higher and higher. In order to cope with these demands, we often need to use queued delayed tasks and scheduled tasks. This article will focus on how to apply queue delayed tasks and scheduled tasks in PHP and MySQL, and give specific code examples.

1. Application scenarios of delayed tasks in queues:
Delayed tasks in queues refer to putting tasks into the queue, setting a delay time, and then executing the tasks after a period of time. This method is often used in scenarios that require delayed processing, such as sending SMS verification codes, sending emails, generating reports, etc.

In PHP, we can use Redis as a queue service and combine it with PHP's Redis extension library to implement delayed tasks in the queue.

Code example:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// 连接Redis服务器

$redis = new Redis();

$redis->connect('127.0.0.1', 6379);

 

// 将任务放入队列,设置延迟时间为60秒

$job = ['to' => 'example@example.com', 'subject' => 'Test Email', 'content' => 'Hello, World!'];

$delay = 60;

$redis->zAdd('delayed_queue', time() + $delay, json_encode($job));

 

// 从队列中取出延迟时间已到的任务,并执行

while (true) {

    $jobs = $redis->zRangeByScore('delayed_queue', 0, time(), ['limit' => [0, 1]]);

    if (!empty($jobs)) {

        $job = array_shift($jobs);

        // 执行任务

        sendEmail(json_decode($job, true));

        // 从队列中删除已执行的任务

        $redis->zRem('delayed_queue', $job);

    }

    // 休眠1秒后再继续检查队列

    sleep(1);

}

Copy after login

?>

The above code first connects to the Redis server and then puts the task into the delay queue , set the delay time to 60 seconds. Then the queue is continuously checked through a loop. If there is a task whose delay time has expired, the task is executed and the executed task is deleted from the queue.

2. Application scenarios of scheduled tasks:
Scheduled tasks refer to executing tasks according to predetermined time intervals, such as once a day, once an hour, etc. This method is often used in scenarios that require periodic execution, such as data backup, log cleaning, etc.

In PHP, we can use the crontab command to schedule scheduled tasks.

Code example:

1

2

3

4

// 执行定时任务

function doTask() {

    // 固定时间点执行的任务

    echo "Fixed time task executed.

Copy after login

";

1

2

3

4

5

6

}

 

// 执行周期性任务

function doPeriodicTask() {

    // 周期性执行的任务

    echo "Periodic task executed.

Copy after login

";

1

2

3

4

5

6

}

 

// 指定固定时间点的定时任务(例如每天凌晨执行)

$cron = '0 0 * * *';

exec("crontab -l > tmpcron");

file_put_contents("tmpcron", "$cron php -f /path/to/task.php >> /path/to/output.log 2>&1

Copy after login

", FILE_APPEND);

1

2

3

4

5

6

exec("crontab tmpcron");

 

// 间隔一小时执行一次的定时任务(每小时的第5分钟执行)

$cron = '5 * * * *';

exec("crontab -l > tmpcron");

file_put_contents("tmpcron", "$cron php -f /path/to/task.php >> /path/to/output.log 2>&1

Copy after login

", FILE_APPEND);

1

2

3

4

5

exec("crontab tmpcron");

 

// 执行任务

doTask();

doPeriodicTask();

Copy after login

?>

In the above code, two functions are first defined: doTask() and doPeriodicTask(), which represent fixed time respectively. Point-executed tasks and periodically executed tasks.

Then call the crontab command through the command line to add the scheduled task to the system's scheduled task list. Among them, the cron parameter is used to specify the execution time rule of the task, which means it will be executed once every morning and once every fifth minute of every hour. The php command is used to execute the script file where the scheduled task is located and redirect the output to the output log file.

Finally, the two functions doTask() and doPeriodicTask() are called in the code to represent the actual execution of the task.

Summary:
Queue delayed tasks and scheduled tasks have a wide range of application scenarios in PHP and MySQL. By using delayed tasks in the queue, we can implement some tasks that require delayed processing and improve the real-time performance of the system. By using scheduled tasks, we can implement some tasks that need to be executed periodically and improve the automation of the system. The above gives specific code examples for applying queue delayed tasks and scheduled tasks in PHP and MySQL for readers' reference.

The above is the detailed content of Application scenarios of queue delayed tasks and scheduled tasks in PHP and MySQL. For more information, please follow other related articles on the PHP Chinese website!

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1657
14
PHP Tutorial
1257
29
C# Tutorial
1229
24
Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

The Continued Use of PHP: Reasons for Its Endurance The Continued Use of PHP: Reasons for Its Endurance Apr 19, 2025 am 12:23 AM

What’s still popular is the ease of use, flexibility and a strong ecosystem. 1) Ease of use and simple syntax make it the first choice for beginners. 2) Closely integrated with web development, excellent interaction with HTTP requests and database. 3) The huge ecosystem provides a wealth of tools and libraries. 4) Active community and open source nature adapts them to new needs and technology trends.

Laravel framework installation method Laravel framework installation method Apr 18, 2025 pm 12:54 PM

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

MySQL and phpMyAdmin: Core Features and Functions MySQL and phpMyAdmin: Core Features and Functions Apr 22, 2025 am 12:12 AM

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

MySQL vs. Other Programming Languages: A Comparison MySQL vs. Other Programming Languages: A Comparison Apr 19, 2025 am 12:22 AM

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages ​​such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages ​​have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

Solve MySQL mode problem: The experience of using the TheliaMySQLModesChecker module Solve MySQL mode problem: The experience of using the TheliaMySQLModesChecker module Apr 18, 2025 am 08:42 AM

When developing an e-commerce website using Thelia, I encountered a tricky problem: MySQL mode is not set properly, causing some features to not function properly. After some exploration, I found a module called TheliaMySQLModesChecker, which is able to automatically fix the MySQL pattern required by Thelia, completely solving my troubles.

The Compatibility of IIS and PHP: A Deep Dive The Compatibility of IIS and PHP: A Deep Dive Apr 22, 2025 am 12:01 AM

IIS and PHP are compatible and are implemented through FastCGI. 1.IIS forwards the .php file request to the FastCGI module through the configuration file. 2. The FastCGI module starts the PHP process to process requests to improve performance and stability. 3. In actual applications, you need to pay attention to configuration details, error debugging and performance optimization.

How to safely store JavaScript objects containing functions and regular expressions to a database and restore? How to safely store JavaScript objects containing functions and regular expressions to a database and restore? Apr 19, 2025 pm 11:09 PM

Safely handle functions and regular expressions in JSON In front-end development, JavaScript is often required...

See all articles