PHP uses SWOOLE extension to implement timing synchronization
This article introduces to you a relatively special task. We use PHP SWOOLE to make an asynchronous scheduled task system. How to implement it specifically? Let’s take a closer look
Nanning Company We use a calling system with several branches, and now we need to do a call data analysis. Since the branch's call server is on the intranet and mapped out through technical means, the network between the branch and Nanning is unstable. , so the call data of the branch needs to be synchronized to Nanning.
The simplest method is to directly configure the master-slave synchronization of MySQL to synchronize the data to Nanning. But the company on the sales call system doesn't give us MySQL permissions. So this method can only be abandoned.
So we simply thought of using PHP to implement a simple PHP timing synchronization tool, and then the PHP process ran in the background, so first we came to a PHP component: SWOOLE. After discussion, the branch company The maximum amount of data generated in half a day is about 5,000, so this solution is feasible, so just do it.
We use PHP SWOOLE to make an asynchronous scheduled task system.
The master-slave synchronization of the MySQL database itself synchronizes data to the slave database by parsing the binary-log in the Master database. However, when we use PHP to synchronize data, we can only query the data in batches from the master library and then insert it into the slave library in Nanning.
The framework we use here is ThinkPHP 3.2
.
First install the PHP extension: SWOOLE, because no special functions are used, so here we use pecl for quick installation :
1 |
|
After the installation is complete, add extension="swoole.so"
to php.ini
After the installation is complete, we use phpinfo()
Check whether it is successful.
The installation is successful, let’s write the business.
Server
1. First start a background server, listen on port 9501
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
2. Receive and deliver tasks
1 2 3 4 5 6 7 8 9 |
|
3. Task execution, data is queried and written from the master library to the slave Database
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
4. When the task is completed, call
1 2 3 4 |
|
Client push task
This is basically completed, and we will write the client task next Pushing
1 2 3 4 5 6 7 8 9 10 11 |
|
is basically completed. The rest is to write a shell script for regular execution: /home/wwwroot/sync_db/crontab/send.sh
1 2 3 4 5 6 |
|
Using crontab scheduled tasks, we Add the script to the scheduled task
1 2 3 4 |
|
Tips: It is best to add the log writing operation to it, so that you can know whether the task push and execution are successful.
This is basically completed. The program needs to be optimized~~~. If you have any better methods, please feel free to suggest them.
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 implements the method of querying different elements in two arrays
php implements the effect of mysql connection pool
The above is the detailed content of PHP uses SWOOLE extension to implement timing synchronization. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

Causes and solutions for errors when using PECL to install extensions in Docker environment When using Docker environment, we often encounter some headaches...

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
