38 lines
729 B
PHP
38 lines
729 B
PHP
<?php
|
|
|
|
/**
|
|
* @author Any
|
|
* @description KISS
|
|
* @date 2020-12-1
|
|
* @version 1.0.0
|
|
*
|
|
* _____LOG_____
|
|
*
|
|
*/
|
|
|
|
namespace app\modules\api\models;
|
|
|
|
use app\models\Model;
|
|
|
|
class ApiModel extends Model
|
|
{
|
|
|
|
/**
|
|
* 重复提交锁
|
|
* @param $key
|
|
* @param $ttl
|
|
*/
|
|
public function lock($key, $ttl = 1)
|
|
{
|
|
$setnx = \Yii::$app->redis->setnx($key,1);
|
|
if(empty($setnx)){
|
|
$ttl_ = \Yii::$app->redis->ttl($key);
|
|
if($ttl_ === -1){
|
|
\Yii::$app->redis->expire($key,$ttl);
|
|
}
|
|
return $this->apiReturnError('请勿重复提交');
|
|
}
|
|
\Yii::$app->redis->expire($key, $ttl); //设置生成时间为1秒
|
|
return true;
|
|
}
|
|
} |