Controllers/RedisLockController.cs
(完整代码) 1KBusing Microsoft.AspNetCore.Mvc;
using RedisLock_Demo.Models;
using System;
namespace RedisLock_Demo.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class RedisLockController : ControllerBase
{
readonly IFreeSql freeSql;
readonly RedisLock redisLock = new RedisLock();
public RedisLockController(IFreeSql _freeSql)
{
freeSql = _freeSql;
}
[HttpPost]
public int Post()
{
//请求id
string requestId = Guid.NewGuid().ToString();
try
{
//获取锁
redisLock.GetLock(requestId);
//业务操作
var redisLockd = freeSql.Select<RedisLockdTest>().First();
redisLockd.Num++;
freeSql.Update<RedisLockdTest>().Set(r => r.Num, redisLockd.Num).Where(r => 1 == 1).ExecuteAffrows();
return redisLockd.Num;
}
finally
{
redisLock.ReleaseLock(requestId);
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
