切换OPENAI
This commit is contained in:
@@ -8,6 +8,24 @@ class QueueJob
|
|||||||
//必填参数
|
//必填参数
|
||||||
protected $aField = ['job_id','job_class','status','create_time','update_time','error','params'];
|
protected $aField = ['job_id','job_class','status','create_time','update_time','error','params'];
|
||||||
|
|
||||||
|
//定义redis连接
|
||||||
|
private $redis;
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$config = \think\Config::get('queue');
|
||||||
|
$this->redis = new \Redis();
|
||||||
|
$this->redis->connect($config['host'], $config['port']);
|
||||||
|
|
||||||
|
if (!empty($config['password'])) {
|
||||||
|
$this->redis->auth($config['password']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->redis->select($config['select']);
|
||||||
|
// 初始化 Redis 连接
|
||||||
|
// $this->redis = Cache::store('redis')->handler();
|
||||||
|
}
|
||||||
|
|
||||||
// 记录任务开始
|
// 记录任务开始
|
||||||
public function addLog($aParam = []) {
|
public function addLog($aParam = []) {
|
||||||
|
|
||||||
@@ -78,5 +96,34 @@ class QueueJob
|
|||||||
}
|
}
|
||||||
return Cache::get($sRedisKey);
|
return Cache::get($sRedisKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 使用SETNX原子操作设置锁
|
||||||
|
public function setRedisLock($key, $value, $expire)
|
||||||
|
{
|
||||||
|
return $this->redis->set($key, $value, ['nx', 'ex' => $expire]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取Redis值
|
||||||
|
public function getRedisValue($key)
|
||||||
|
{
|
||||||
|
return $this->redis->get($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 安全释放锁(仅当值匹配时删除)
|
||||||
|
public function releaseRedisLock($key, $value)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 使用Lua脚本确保原子性
|
||||||
|
$script = <<<LUA
|
||||||
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
||||||
|
return redis.call("DEL", KEYS[1])
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
LUA;
|
||||||
|
|
||||||
|
return $this->redis->eval($script, [$key, $value], 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
Reference in New Issue
Block a user