Commit e62c8ff5 authored by yangxiaodong's avatar yangxiaodong

fixed dirty read.

parent a3e07a36
...@@ -39,17 +39,16 @@ namespace DotNetCore.CAP.MySql ...@@ -39,17 +39,16 @@ namespace DotNetCore.CAP.MySql
public Task<IFetchedMessage> FetchNextMessageAsync() public Task<IFetchedMessage> FetchNextMessageAsync()
{ {
//Last execute statement : //Last execute statement(FOR UPDATE to fix dirty read) :
//SET TRANSACTION ISOLATION LEVEL READ COMMITTED; //SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
//START TRANSACTION; //START TRANSACTION;
//SELECT MessageId,MessageType FROM [{_prefix}].[Queue] LIMIT 1; //SELECT MessageId,MessageType FROM `{_prefix}.queue` LIMIT 1 FOR UPDATE;
//DELETE FROM [{_prefix}].[Queue] LIMIT 1; //DELETE FROM `{_prefix}.queue` LIMIT 1;
//COMMIT; //COMMIT;
//TODO : here maybe have a dirty read
var sql = $@" var sql = $@"
SELECT `MessageId`,`MessageType` FROM `{_prefix}.queue` LIMIT 1; SELECT `MessageId`,`MessageType` FROM `{_prefix}.queue` LIMIT 1 FOR UPDATE;
DELETE FROM `{_prefix}.queue` LIMIT 1;"; DELETE FROM `{_prefix}.queue` LIMIT 1;";
return FetchNextMessageCoreAsync(sql); return FetchNextMessageCoreAsync(sql);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment