ホームページ  >  記事  >  バックエンド開発  >  PHP スクリプトは製品リストを定期的に更新します

PHP スクリプトは製品リストを定期的に更新します

不言
不言オリジナル
2018-04-23 10:23:421397ブラウズ

この記事では、製品リストを定期的に更新するための PHP スクリプトを紹介します。これは、必要な友達に共有して、同時実行防止機能を向上させることができます。 -commerce プロジェクトでは、商品リストを更新する必要があります。キャッシュを更新するために使用されるスクリプトは次のとおりです。

//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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。