Commit 42cceee2 by dingsongjie

调整命名

parent 1fffdf16
......@@ -25,10 +25,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Backet.Api", "samples\apis\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "User.Api", "samples\apis\User.Api\User.Api.csproj", "{F65858EC-C34F-4121-BEC5-4E20DEA74A0A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integrationEvents", "integrationEvents", "{74422E64-29FE-4287-A86E-741D1DFF6698}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Product.IntegrationEvents", "samples\intergrationEvents\Product.IntegrationEvents\Product.IntegrationEvents.csproj", "{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.EventBus.Rabbitmq", "src\Pole.EventBus.Rabbitmq\Pole.EventBus.Rabbitmq.csproj", "{BDF62A19-FFBD-4EE1-A07A-68472E680A95}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Core.Test", "test\Pole.Core.Test\Pole.Core.Test.csproj", "{23EA8735-DB2E-4599-8902-8FCBCBE4799C}"
......@@ -39,11 +35,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Orleans.Provider.Entit
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Samples.Backet.Api", "test\Pole.Samples.Backet.Api\Pole.Samples.Backet.Api.csproj", "{FB3D2F52-123A-4606-B682-9159BD7913AE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pole.Sagas", "src\Pole.Sagas\Pole.Sagas.csproj", "{1F06D877-E4EC-4908-9057-38EDCE5E54E6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Sagas", "src\Pole.Sagas\Pole.Sagas.csproj", "{1F06D877-E4EC-4908-9057-38EDCE5E54E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pole.Sagas.Storage.PostgreSql", "src\Pole.Sagas.Storage.PostgreSql\Pole.Sagas.Storage.PostgreSql.csproj", "{9505BDFC-395B-4257-AEB3-2B44611147A4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Sagas.Storage.PostgreSql", "src\Pole.Sagas.Storage.PostgreSql\Pole.Sagas.Storage.PostgreSql.csproj", "{9505BDFC-395B-4257-AEB3-2B44611147A4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SagasTest.Api", "samples\apis\SagasTest.Api\SagasTest.Api.csproj", "{6138197E-6202-4E1B-9458-3CBEE60A36F9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SagasTest.Api", "samples\apis\SagasTest.Api\SagasTest.Api.csproj", "{6138197E-6202-4E1B-9458-3CBEE60A36F9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -75,10 +71,6 @@ Global
{F65858EC-C34F-4121-BEC5-4E20DEA74A0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F65858EC-C34F-4121-BEC5-4E20DEA74A0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F65858EC-C34F-4121-BEC5-4E20DEA74A0A}.Release|Any CPU.Build.0 = Release|Any CPU
{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C}.Release|Any CPU.Build.0 = Release|Any CPU
{BDF62A19-FFBD-4EE1-A07A-68472E680A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BDF62A19-FFBD-4EE1-A07A-68472E680A95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BDF62A19-FFBD-4EE1-A07A-68472E680A95}.Release|Any CPU.ActiveCfg = Release|Any CPU
......@@ -124,8 +116,6 @@ Global
{125B1E4B-B1C1-4F85-9C6A-38815960E654} = {475116FC-DEEC-4255-94E4-AE7B8C85038D}
{C961F25C-1C11-4855-84E4-ADABE96451E7} = {475116FC-DEEC-4255-94E4-AE7B8C85038D}
{F65858EC-C34F-4121-BEC5-4E20DEA74A0A} = {475116FC-DEEC-4255-94E4-AE7B8C85038D}
{74422E64-29FE-4287-A86E-741D1DFF6698} = {4A0FB696-EC29-4A5F-B40B-A6FC56001ADB}
{9C0DFC90-1AF9-424A-B5FB-2A7C3611970C} = {74422E64-29FE-4287-A86E-741D1DFF6698}
{BDF62A19-FFBD-4EE1-A07A-68472E680A95} = {9932C965-8B38-4F70-9E43-86DC56860E2B}
{23EA8735-DB2E-4599-8902-8FCBCBE4799C} = {655E719B-4A3E-467C-A541-E0770AB81DE1}
{548EFDBB-252F-48DD-87F4-58ABFBD4963C} = {9932C965-8B38-4F70-9E43-86DC56860E2B}
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Product.IntegrationEvents
{
public class ProductAddedIntegrationEvent
{
public string BacketId { get; set; }
public string ProductId { get; set; }
public string ProductName { get; set; }
public long Price { get; set; }
}
}
syntax = "proto3";
package pole.Grpc.ExtraType;
message CommonCommandResponse {
// 1 成功 2 失败
int32 status = 1;
string message = 2;
}
\ No newline at end of file
syntax = "proto3";
package newArchitectureLab.apps.order;
service Order {
rpc GetById (GetByIdRequest) returns (GetByIdResponse);
}
message GetByIdRequest {
string id = 1;
}
message GetByIdResponse {
string id = 1;
double totalprice = 2;
repeated Product products = 3 ;
message Product {
string id = 1 ;
string name = 2 ;
double price = 3 ;
}
}
\ No newline at end of file
syntax = "proto3";
package newArchitectureLab.apps.product;
// The product service definition.
service Product {
rpc GetById (GetByIdRequest) returns (GetByIdResponse);
}
message GetByIdRequest {
string Id = 1;
}
message GetByIdResponse {
string id = 1;
string name = 2;
double price = 3;
int64 stock = 4;
string productTypeId = 5;
}
\ No newline at end of file
syntax = "proto3";
import "common/commonCommandResponse.proto";
package poleSample.apis.product;
// The greeting service definition.
service ProductType {
// Sends a greeting
rpc Add(AddProductTypeRequest) returns (pole.Grpc.ExtraType.CommonCommandResponse);
}
// The request message containing the user's name.
message AddProductTypeRequest {
string id = 1;
string name = 2;
}
......@@ -18,18 +18,18 @@ namespace Pole.Sagas.Core
private ISnowflakeIdGenerator snowflakeIdGenerator;
private IActivityFinder activityFinder;
private PoleSagasOption poleSagasOption;
public int CurrentMaxOrder
private int CurrentMaxOrder
{
get { return activities.Count; }
}
/// <summary>
/// 如果 等于 -1 说明已经在执行补偿操作,此时这个值已经没有意义
/// </summary>
private int _currentExecuteOrder = 0;
private int currentExecuteOrder = 0;
/// <summary>
/// 如果 等于 -1 说明已经还未执行补偿操作,此时这个值没有意义
/// </summary>
private int _currentCompensateOrder = -1;
private int currentCompensateOrder = -1;
private ISerializer serializer;
public string Id { get; }
......@@ -43,6 +43,18 @@ namespace Pole.Sagas.Core
this.activityFinder = activityFinder;
Id = snowflakeIdGenerator.NextId();
}
internal Saga(ISnowflakeIdGenerator snowflakeIdGenerator, IServiceProvider serviceProvider, IEventSender eventSender, PoleSagasOption poleSagasOption, ISerializer serializer, IActivityFinder activityFinder,int currentExecuteOrder,int currentCompensateOrder)
{
this.snowflakeIdGenerator = snowflakeIdGenerator;
this.serviceProvider = serviceProvider;
this.eventSender = eventSender;
this.poleSagasOption = poleSagasOption;
this.serializer = serializer;
this.activityFinder = activityFinder;
Id = snowflakeIdGenerator.NextId();
this.currentExecuteOrder = currentExecuteOrder;
this.currentCompensateOrder = currentCompensateOrder;
}
public void AddActivity(string activityName, object data, int timeOutSeconds = 2)
{
......@@ -84,22 +96,22 @@ namespace Pole.Sagas.Core
private ActivityWapper GetNextExecuteActivity()
{
if (_currentExecuteOrder == CurrentMaxOrder)
if (currentExecuteOrder == CurrentMaxOrder)
{
return null;
}
_currentExecuteOrder++;
return activities[_currentExecuteOrder - 1];
currentExecuteOrder++;
return activities[currentExecuteOrder - 1];
}
private ActivityWapper GetNextCompensateActivity()
{
_currentCompensateOrder--;
if (_currentCompensateOrder == 0)
currentCompensateOrder--;
if (currentCompensateOrder == 0)
{
return null;
}
return activities[_currentCompensateOrder - 1];
return activities[currentCompensateOrder - 1];
}
private async Task RecursiveCompensateActivity(ActivityWapper activityWapper)
{
......@@ -133,7 +145,7 @@ namespace Pole.Sagas.Core
if (!result.IsSuccess)
{
await eventSender.ActivityRevoked(activityId);
await CompensateActivity(result,_currentExecuteOrder);
await CompensateActivity(result,currentExecuteOrder);
return result;
}
await eventSender.ActivityEnded(activityId, string.Empty);
......@@ -159,7 +171,7 @@ namespace Pole.Sagas.Core
};
await eventSender.ActivityExecuteOvertime(activityId, Id, errors);
// 超时的时候 需要首先补偿这个超时的操作
return await CompensateActivity(result,_currentExecuteOrder+1);
return await CompensateActivity(result,currentExecuteOrder+1);
}
else
{
......@@ -171,15 +183,15 @@ namespace Pole.Sagas.Core
};
await eventSender.ActivityExecuteAborted(activityId, errors);
// 出错的时候 需要首先补偿这个出错的操作
return await CompensateActivity(result, _currentExecuteOrder + 1);
return await CompensateActivity(result, currentExecuteOrder + 1);
}
}
}
private async Task<ActivityExecuteResult> CompensateActivity(ActivityExecuteResult result,int currentCompensateOrder)
{
_currentCompensateOrder = currentCompensateOrder;
_currentExecuteOrder = -1;
this.currentCompensateOrder = currentCompensateOrder;
currentExecuteOrder = -1;
var compensateActivity = GetNextCompensateActivity();
if (compensateActivity == null)
{
......
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 sign in to comment