@@ -41,12 +41,12 @@ public async Task<CapPublishedMessage> GetPublishedMessageAsync(int id)
4141
4242 public Task < IFetchedMessage > FetchNextMessageAsync ( )
4343 {
44+ var processId = ObjectId . GenerateNewStringId ( ) ;
4445 var sql = $@ "
4546UPDATE `{ _prefix } .queue` SET `ProcessId`=@ProcessId WHERE `ProcessId` IS NULL LIMIT 1;
46- SELECT `MessageId`,`MessageType` FROM `{ _prefix } .queue` WHERE `ProcessId`=@ProcessId;
47- DELETE FROM `{ _prefix } .queue` WHERE `ProcessId`=@ProcessId" ;
47+ SELECT `MessageId`,`MessageType` FROM `{ _prefix } .queue` WHERE `ProcessId`=@ProcessId;" ;
4848
49- return FetchNextMessageCoreAsync ( sql , new { ProcessId = Guid . NewGuid ( ) . ToString ( ) } ) ;
49+ return FetchNextMessageCoreAsync ( sql , processId ) ;
5050 }
5151
5252 public async Task < CapPublishedMessage > GetNextPublishedMessageToBeEnqueuedAsync ( )
@@ -139,18 +139,18 @@ public bool ChangeReceivedState(int messageId, string state)
139139 }
140140 }
141141
142- private async Task < IFetchedMessage > FetchNextMessageCoreAsync ( string sql , object args = null )
142+ private async Task < IFetchedMessage > FetchNextMessageCoreAsync ( string sql , string processId )
143143 {
144144 FetchedMessage fetchedMessage ;
145145 using ( var connection = new MySqlConnection ( Options . ConnectionString ) )
146146 {
147- fetchedMessage = await connection . QuerySingleOrDefaultAsync < FetchedMessage > ( sql , args ) ;
147+ fetchedMessage = await connection . QuerySingleOrDefaultAsync < FetchedMessage > ( sql , new { ProcessId = processId } ) ;
148148 }
149149
150150 if ( fetchedMessage == null )
151151 return null ;
152152
153- return new MySqlFetchedMessage ( fetchedMessage . MessageId , fetchedMessage . MessageType , Options ) ;
153+ return new MySqlFetchedMessage ( fetchedMessage . MessageId , fetchedMessage . MessageType , processId , Options ) ;
154154 }
155155
156156 public void Dispose ( )
0 commit comments