>  기사  >  백엔드 개발  >  PHP 스크립트는 정기적으로 제품 목록을 업데이트합니다.

PHP 스크립트는 정기적으로 제품 목록을 업데이트합니다.

不言
不言원래의
2018-04-23 10:23:421396검색

이 글에서는 정기적으로 제품 목록을 업데이트하는 PHP 스크립트를 주로 소개합니다. 이제는 모든 사람과 공유합니다.

e의 동시성 방지 기능을 향상시키기 위해. -커머스 프로젝트의 경우 상품 목록을 업데이트해야 합니다. 다음은 캐시를 업데이트하는 데 사용되는 스크립트입니다.

//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);

어필 스크립트는 실제 적용 중에 잠길 필요가 있습니다. , 스크립트가 완료되지 않고 다음에 crontab이 자동으로 실행될 때 오류가 발생합니다.

다음은 crontab 스크립트입니다.

* * * * * 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 忽略日志输出

관련 권장 사항:

로컬 데이터베이스 데이터를 읽는 PHP 스크립트

php 스크립트 데몬 원리 및 구현 코드

php 스크립트 시간 초과 메커니즘에 대한 자세한 설명

위 내용은 PHP 스크립트는 정기적으로 제품 목록을 업데이트합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.