Files
caliverse_server/ServerCore/Redis/RedisTransaction.cs
2025-05-01 07:20:41 +09:00

40 lines
798 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StackExchange.Redis;
namespace ServerCore;
public class RedisTransaction : IDisposable
{
private readonly ITransaction m_transaction;
private bool m_committed = false;
public RedisTransaction(IDatabase db)
{
m_transaction = db.CreateTransaction();
}
public async Task commitAsync()
{
m_committed = await m_transaction.ExecuteAsync();
}
// Dispose에서 트랜잭션 해제 처리
public void Dispose()
{
if (false == m_committed)
{
// 트랜잭션을 취소
m_transaction.Execute();
}
}
public ITransaction getTransaction() => m_transaction;
}