Home  >  Article  >  Backend Development  >  PHP script regularly updates product list

PHP script regularly updates product list

不言
不言Original
2018-04-23 10:23:421397browse

The main content of this article is about the PHP script regularly updating the product list, which has a certain reference value. Now I share it with you. Friends in need can refer to it.

In order to improve the anti-resistance in e-commerce projects Concurrency capability requires caching of the product list. The following is the script used to update the cache:

//PRODUCTION_为缓存商品列表的临时key//PRODUCTION为缓存商品列表key
$con = mysqli_connect($db_config['host'],$db_config['user'],$db_config['passwd'],$db_config['database']);
$redis = new Redis();$redis->connect($redis_config['host']);$redis->del(PRODUCTION_);
$sql = "select * from production ORDER BY created_at";
$result = mysqli_query($con,$sql);
$artimages = [];while($row = mysqli_fetch_assoc($result)){    
$redis->lPush(PRODUCTION_,json_encode($row));
}/*
*之所以不直接更新到商品列表是因为当商品列表数据量比较大的时候,脚本执行的时间长,
*在del PRODUCTION之后 lPush PRODUCTION之前 用户访问网站的时候会出现读取不到
*商品列表的情况。
*先存入临时列表,再最后rename为实际被查询的key
*/$redis->rename(PRODUCTION_,PRODUCTION);

The appeal script is just a demo and needs to be locked during actual application. Otherwise, the crontab will be reached again before the script is executed. When executing automatically, errors will occur.

The following is the crontab script:

* * * * * root  /usr/local/php/bin/php  /xxx/xxxx/xxx/production.php >/dev/null 2>&1

root  是执行脚本的用户
/usr/local/php/bin/php php脚本解释器,如果不写全路径的话会报错
>/dev/null 2>&1 忽略日志输出

Related recommendations:

PHP script to read local database data

php Script daemon principle and implementation code

Detailed explanation of php script timeout mechanism

           

The above is the detailed content of PHP script regularly updates product list. For more information, please follow other related articles on the PHP Chinese website!

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