Maison  >  Article  >  cadre php  >  Une brève analyse de la gestion de la concurrence d'interface dans Laravel

Une brève analyse de la gestion de la concurrence d'interface dans Laravel

藏色散人
藏色散人avant
2021-02-13 09:20:493812parcourir

La colonne tutorielle suivante de Laravel vous présentera le traitement simple de la concurrence d'interface dans Laravel. J'espère qu'elle sera utile aux amis qui en ont besoin !

Gestion simple de la concurrence d'interface dans Laravel

Introduction

Le traitement simultané des interfaces se produit souvent dans la logique métier quotidienne. Le plus courant est que la même interface est ajustée plusieurs fois instantanément, ce qui entraîne des données confuses
Afin d'éviter ce problème, généralement frontal. et terminaux mobiles Il y aura des restrictions sur les restrictions d'interface de déclenchement des boutons et les restrictions d'appel de l'interface backend.

Comme mentionné précédemment

Cette méthode ne convient qu'à une simple limitation de fréquence d'interface. Elle ne s’applique pas aux ventes flash de produits, mais le principe est similaire.

Principe

Il s'agit simplement d'un processus de mise en œuvre simple, utilisant principalement la classe de méthode set native Redis pour définir le délai d'expiration lors de la définition de la valeur de la clé si la clé modifiée existe. , renvoie faux. S'il n'existe pas, définissez la valeur, définissez le délai d'expiration et renvoyez true. L'apparition d'un blocage est évitée.

Partie du code :

/**
 * 简单处理并发
 * @User yaokai
 * @param $key 要设置的key
 * @param int $ttl 限制过期时间
 * @param int $value 要设置的值
 * @return bool true成功  false失败
 */
function redisConcurren($key, $ttl = 240, $value = 1)
{
    // 实例化原生 redis
    $redis = new \Redis();
    
    // 指定需要使用的 redis 服务器
    $redis->connect(config('database.redis.default.host'));
    // 设置密码
    $redis->auth(config('database.redis.default.password'));
    // 设置默认的 redis 库
    $redis->select(config('database.redis.default.database'));
    // 利用原生的set方法设置一个key的过期时间
    $status = $redis->set($key, $value, array( 'nx', 'ex' => $ttl ));
    
    return $status;
}

Écrit au dos

Je ne suis qu'un débutant qui apprend lentement. S'il y a quelque chose qui ne va pas ou s'il existe un meilleur moyen, j'espère que vous me donnerez vos conseils et en discuterez les uns avec les autres, merci beaucoup !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer