Commit 77052cb1 authored by Savorboard's avatar Savorboard

Fix received storage message retry bug. #473

parent b66031c2
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<VersionMajor>3</VersionMajor> <VersionMajor>3</VersionMajor>
<VersionMinor>0</VersionMinor> <VersionMinor>0</VersionMinor>
<VersionPatch>0</VersionPatch> <VersionPatch>1</VersionPatch>
<VersionQuality></VersionQuality> <VersionQuality></VersionQuality>
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix> <VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
</PropertyGroup> </PropertyGroup>
......
...@@ -9,6 +9,7 @@ using DotNetCore.CAP.Messages; ...@@ -9,6 +9,7 @@ using DotNetCore.CAP.Messages;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Internal; using Microsoft.Extensions.Internal;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
namespace DotNetCore.CAP.Internal namespace DotNetCore.CAP.Internal
{ {
...@@ -61,10 +62,17 @@ namespace DotNetCore.CAP.Internal ...@@ -61,10 +62,17 @@ namespace DotNetCore.CAP.Internal
executeParameters[i] = new CapHeader(message.Headers); executeParameters[i] = new CapHeader(message.Headers);
} }
else else
{
if (message.Value is JObject jValue) //reading from storage
{
executeParameters[i] = jValue.ToObject(parameterDescriptors[i].ParameterType);
}
else
{ {
executeParameters[i] = message.Value; executeParameters[i] = message.Value;
} }
} }
}
var resultObj = await ExecuteWithParameterAsync(executor, obj, executeParameters); var resultObj = await ExecuteWithParameterAsync(executor, obj, executeParameters);
return new ConsumerExecutedResult(resultObj, message.GetId(), message.GetCallbackName()); return new ConsumerExecutedResult(resultObj, message.GetId(), message.GetCallbackName());
......
...@@ -55,6 +55,7 @@ namespace DotNetCore.CAP.Processor ...@@ -55,6 +55,7 @@ namespace DotNetCore.CAP.Processor
foreach (var message in messages) foreach (var message in messages)
{ {
//the message.Origin.Value maybe JObject
await _messageSender.SendAsync(message); await _messageSender.SendAsync(message);
await context.WaitAsync(_delay); await context.WaitAsync(_delay);
......
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