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











Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

AI can help optimize the use of Composer. Specific methods include: 1. Dependency management optimization: AI analyzes dependencies, recommends the best version combination, and reduces conflicts. 2. Automated code generation: AI generates composer.json files that conform to best practices. 3. Improve code quality: AI detects potential problems, provides optimization suggestions, and improves code quality. These methods are implemented through machine learning and natural language processing technologies to help developers improve efficiency and code quality.

MySQL functions can be used for data processing and calculation. 1. Basic usage includes string processing, date calculation and mathematical operations. 2. Advanced usage involves combining multiple functions to implement complex operations. 3. Performance optimization requires avoiding the use of functions in the WHERE clause and using GROUPBY and temporary tables.

HTML5 brings five key improvements: 1. Semantic tags improve code clarity and SEO effects; 2. Multimedia support simplifies video and audio embedding; 3. Form enhancement simplifies verification; 4. Offline and local storage improves user experience; 5. Canvas and graphics functions enhance the visualization of web pages.

Composer is a dependency management tool for PHP, and manages project dependencies through composer.json file. 1) parse composer.json to obtain dependency information; 2) parse dependencies to form a dependency tree; 3) download and install dependencies from Packagist to the vendor directory; 4) generate composer.lock file to lock the dependency version to ensure team consistency and project maintainability.

typetraits are used in C for compile-time type checking and operation, improving code flexibility and type safety. 1) Type judgment is performed through std::is_integral and std::is_floating_point to achieve efficient type checking and output. 2) Use std::is_trivially_copyable to optimize vector copy and select different copy strategies according to the type. 3) Pay attention to compile-time decision-making, type safety, performance optimization and code complexity. Reasonable use of typetraits can greatly improve code quality.

Methods for configuring character sets and collations in MySQL include: 1. Setting the character sets and collations at the server level: SETNAMES'utf8'; SETCHARACTERSETutf8; SETCOLLATION_CONNECTION='utf8_general_ci'; 2. Create a database that uses specific character sets and collations: CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci; 3. Specify character sets and collations when creating a table: CREATETABLEexample_table(idINT
