Commit dfd3ec46 authored by mohammad.salama's avatar mohammad.salama

Client LoadBalancing internally , Renamed Queuer to Scheduler , some...

Client LoadBalancing internally , Renamed Queuer to Scheduler , some enhancements on Redis Writes ops
parent 91f6480a
...@@ -33,12 +33,12 @@ ...@@ -33,12 +33,12 @@
}, },
"494712ab-c5a0-4525-81ae-dd203f249cb9": { "494712ab-c5a0-4525-81ae-dd203f249cb9": {
"ProjectGuid": "494712ab-c5a0-4525-81ae-dd203f249cb9", "ProjectGuid": "494712ab-c5a0-4525-81ae-dd203f249cb9",
"DisplayName": "MessageGeneratorGRPC", "DisplayName": "GRPCMessageGenerator",
"ColorIndex": 5 "ColorIndex": 5
}, },
"676d9604-4597-4935-826a-7f054fd5936a": { "676d9604-4597-4935-826a-7f054fd5936a": {
"ProjectGuid": "676d9604-4597-4935-826a-7f054fd5936a", "ProjectGuid": "676d9604-4597-4935-826a-7f054fd5936a",
"DisplayName": "QueuerNode", "DisplayName": "Scheduler",
"ColorIndex": 6 "ColorIndex": 6
}, },
"79a276e9-da51-4434-9241-a0f8e6771232": { "79a276e9-da51-4434-9241-a0f8e6771232": {
...@@ -70,7 +70,17 @@ ...@@ -70,7 +70,17 @@
"ProjectGuid": "8f51b680-f3b6-4892-b854-2e2af840cd71", "ProjectGuid": "8f51b680-f3b6-4892-b854-2e2af840cd71",
"DisplayName": "SimpleStreamConsumerTest", "DisplayName": "SimpleStreamConsumerTest",
"ColorIndex": 12 "ColorIndex": 12
},
"1bf34fa7-e2a8-4fac-a7a5-d57264b98b98": {
"ProjectGuid": "1bf34fa7-e2a8-4fac-a7a5-d57264b98b98",
"DisplayName": "ManualStreamConsumer",
"ColorIndex": 13
},
"4f286608-7770-4511-bf37-2b94f5351d42": {
"ProjectGuid": "4f286608-7770-4511-bf37-2b94f5351d42",
"DisplayName": "PriorityStream",
"ColorIndex": 14
} }
}, },
"NextColorIndex": 13 "NextColorIndex": 15
} }
\ No newline at end of file
using GrpcMessageNode.Services;
using Steeltoe.Discovery;
namespace GrpcMessageNode.LoadBalancer
{
public class AddressResolver
{
private static Random random = new Random();
private static int offset = random.Next(200000,int.MaxValue);
public static string getAddressOfInstance(string instanceName , ref IDiscoveryClient discoveryClient)
{
string address = "";
try
{
// instanceName = "Validator" or "QueuerNode" ... etc
var y = discoveryClient.GetInstances(instanceName); /// write names to config file
int element = offset % y.Count;
address = y[element].Uri.ToString();
offset = 1 + (offset % y.Count);
return address;
}
catch (Exception ex)
{
return SendMessageService.ErrorConnection;
}
}
}
}
...@@ -9,12 +9,12 @@ namespace GrpcMessageNode.Services ...@@ -9,12 +9,12 @@ namespace GrpcMessageNode.Services
public class SendMessageService : Send.SendBase public class SendMessageService : Send.SendBase
{ {
private readonly ILogger<SendMessageService> _logger; private readonly ILogger<SendMessageService> _logger;
private readonly IDiscoveryClient discoveryClient; private IDiscoveryClient discoveryClient;
private static readonly string ErrorValidation = "Error When Validating Request"; private static readonly string ErrorValidation = "Error When Validating Request";
private static readonly string ErrorDBConnection = "Error Connecting to DataBase"; private static readonly string ErrorDBConnection = "Error Connecting to DataBase";
private static readonly string ErrorConnection = "Error Connecting to Servers"; public static readonly string ErrorConnection = "Error Connecting to Servers";
private static readonly string ErrorGRPCConnection = "Error Connecting to GRPC Servers"; private static readonly string ErrorGRPCConnection = "Error Connecting to GRPC Servers";
private static readonly string QueuerNode = "QueuerNode"; private static readonly string Scheduler = "SchedulerNode";
private static readonly string Validator = "Validator"; private static readonly string Validator = "Validator";
...@@ -26,7 +26,7 @@ namespace GrpcMessageNode.Services ...@@ -26,7 +26,7 @@ namespace GrpcMessageNode.Services
public override Task<Acknowledgement> SendMessage(Message message, ServerCallContext context) public override Task<Acknowledgement> SendMessage(Message message, ServerCallContext context)
{ {
string validator = getAddressOfInstance(Validator); string validator = LoadBalancer.AddressResolver.getAddressOfInstance(Validator , ref discoveryClient);
if (validator == ErrorConnection) if (validator == ErrorConnection)
{ {
return Task.FromResult(new Acknowledgement return Task.FromResult(new Acknowledgement
...@@ -61,7 +61,7 @@ namespace GrpcMessageNode.Services ...@@ -61,7 +61,7 @@ namespace GrpcMessageNode.Services
private Acknowledgement sendToCoordinator(Message message) private Acknowledgement sendToCoordinator(Message message)
{ {
string address = getAddressOfInstance(QueuerNode); string address = LoadBalancer.AddressResolver.getAddressOfInstance(Scheduler , ref discoveryClient);
if (address == ErrorConnection) if (address == ErrorConnection)
{ {
return (new Acknowledgement return (new Acknowledgement
...@@ -94,14 +94,14 @@ namespace GrpcMessageNode.Services ...@@ -94,14 +94,14 @@ namespace GrpcMessageNode.Services
} }
//not working -- causing unknown exception with nullable parameter http2 //not working -- causing unknown exception with nullable parameter http2
private Queue.QueueClient getQueueClient() /*private Queue.QueueClient getQueueClient()
{ {
string address = getAddressOfInstance(QueuerNode); string address = LoadBalancer.AddressResolver.getAddressOfInstance(Scheduler , ref discoveryClient);
using var channel = GrpcChannel.ForAddress(address); using var channel = GrpcChannel.ForAddress(address);
//Console.WriteLine("QueuerNode Address = " + address); //Console.WriteLine("Scheduler Address = " + address);
var client = new Queue.QueueClient(channel); var client = new Queue.QueueClient(channel);
return client; return client;
} }*/
private Message2 copyMessage(Message message) private Message2 copyMessage(Message message)
{ {
...@@ -117,12 +117,12 @@ namespace GrpcMessageNode.Services ...@@ -117,12 +117,12 @@ namespace GrpcMessageNode.Services
} }
private string getAddressOfInstance(string instanceName) /*private string getAddressOfInstance(string instanceName)
{ {
string address = ""; string address = "";
try try
{ {
// instanceName = "Validator" or "QueuerNode" ... etc // instanceName = "Validator" or "Scheduler" ... etc
var y = discoveryClient.GetInstances(instanceName); /// write names to config file var y = discoveryClient.GetInstances(instanceName); /// write names to config file
address = y[0].Uri.ToString(); address = y[0].Uri.ToString();
...@@ -133,6 +133,6 @@ namespace GrpcMessageNode.Services ...@@ -133,6 +133,6 @@ namespace GrpcMessageNode.Services
{ {
return ErrorConnection; return ErrorConnection;
} }
} }*/
} }
} }
...@@ -5,9 +5,9 @@ VisualStudioVersion = 17.0.31903.59 ...@@ -5,9 +5,9 @@ VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GrpcMessageNode", "GrpcMessage\GrpcMessageNode.csproj", "{E55ED87C-0EE4-4A4C-BBBB-76CBF482188D}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GrpcMessageNode", "GrpcMessage\GrpcMessageNode.csproj", "{E55ED87C-0EE4-4A4C-BBBB-76CBF482188D}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MessageGeneratorGRPC", "MessageGeneratorGRPC\MessageGeneratorGRPC.csproj", "{494712AB-C5A0-4525-81AE-DD203F249CB9}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GRPCMessageGenerator", "MessageGeneratorGRPC\GRPCMessageGenerator.csproj", "{494712AB-C5A0-4525-81AE-DD203F249CB9}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueuerNode", "QueuerNode\QueuerNode.csproj", "{676D9604-4597-4935-826A-7F054FD5936A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scheduler", "QueuerNode\Scheduler.csproj", "{676D9604-4597-4935-826A-7F054FD5936A}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HTTPMessageNode", "HTTPMessageNode\HTTPMessageNode.csproj", "{79828C38-A68B-4340-9F93-D55C5DCC203A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HTTPMessageNode", "HTTPMessageNode\HTTPMessageNode.csproj", "{79828C38-A68B-4340-9F93-D55C5DCC203A}"
EndProject EndProject
...@@ -15,7 +15,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HTTPMessageGenerator", "HTT ...@@ -15,7 +15,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HTTPMessageGenerator", "HTT
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Validator", "Validator\Validator.csproj", "{D2C3ADDD-BA47-473C-A761-1CE5B1EE6407}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Validator", "Validator\Validator.csproj", "{D2C3ADDD-BA47-473C-A761-1CE5B1EE6407}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleStreamConsumerTest", "SimpleStreamConsumerTest\SimpleStreamConsumerTest.csproj", "{8F51B680-F3B6-4892-B854-2E2AF840CD71}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimpleStreamConsumerTest", "SimpleStreamConsumerTest\SimpleStreamConsumerTest.csproj", "{8F51B680-F3B6-4892-B854-2E2AF840CD71}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ManualStreamConsumer", "ManualStreamConsumer\ManualStreamConsumer.csproj", "{1BF34FA7-E2A8-4FAC-A7A5-D57264B98B98}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PriorityStream", "PriorityStream\PriorityStream.csproj", "{4F286608-7770-4511-BF37-2B94F5351D42}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
...@@ -51,6 +55,14 @@ Global ...@@ -51,6 +55,14 @@ Global
{8F51B680-F3B6-4892-B854-2E2AF840CD71}.Debug|Any CPU.Build.0 = Debug|Any CPU {8F51B680-F3B6-4892-B854-2E2AF840CD71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F51B680-F3B6-4892-B854-2E2AF840CD71}.Release|Any CPU.ActiveCfg = Release|Any CPU {8F51B680-F3B6-4892-B854-2E2AF840CD71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F51B680-F3B6-4892-B854-2E2AF840CD71}.Release|Any CPU.Build.0 = Release|Any CPU {8F51B680-F3B6-4892-B854-2E2AF840CD71}.Release|Any CPU.Build.0 = Release|Any CPU
{1BF34FA7-E2A8-4FAC-A7A5-D57264B98B98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1BF34FA7-E2A8-4FAC-A7A5-D57264B98B98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1BF34FA7-E2A8-4FAC-A7A5-D57264B98B98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1BF34FA7-E2A8-4FAC-A7A5-D57264B98B98}.Release|Any CPU.Build.0 = Release|Any CPU
{4F286608-7770-4511-BF37-2B94F5351D42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F286608-7770-4511-BF37-2B94F5351D42}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F286608-7770-4511-BF37-2B94F5351D42}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F286608-7770-4511-BF37-2B94F5351D42}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
...@@ -10,9 +10,9 @@ namespace HTTPMessageNode.Controllers ...@@ -10,9 +10,9 @@ namespace HTTPMessageNode.Controllers
{ {
private readonly ILogger<QueueMessageController> _logger; private readonly ILogger<QueueMessageController> _logger;
private readonly IDiscoveryClient discoveryClient; private IDiscoveryClient discoveryClient;
private static readonly string ErrorConnection = "Error Connecting to Servers"; public static readonly string ErrorConnection = "Error Connecting to Servers";
private static readonly string QueuerNode = "QueuerNode"; //put them in files! private static readonly string Scheduler = "SchedulerNode"; //put them in files!
private static readonly string Validator = "Validator"; private static readonly string Validator = "Validator";
private static readonly string ErrorDBConnection = "Error Connecting to DataBase"; private static readonly string ErrorDBConnection = "Error Connecting to DataBase";
private static readonly string ErrorValidation = "Error When Validating Request"; private static readonly string ErrorValidation = "Error When Validating Request";
...@@ -31,7 +31,7 @@ namespace HTTPMessageNode.Controllers ...@@ -31,7 +31,7 @@ namespace HTTPMessageNode.Controllers
{ {
//Console.WriteLine("Msg from : " + messageDTO.clientID + " pr = " + messageDTO.localPriority); //Console.WriteLine("Msg from : " + messageDTO.clientID + " pr = " + messageDTO.localPriority);
string validator = getAddressOfInstance(Validator); string validator = LoadBalancer.AddressResolver.getAddressOfInstance(Validator, ref discoveryClient);
if (validator == ErrorConnection) if (validator == ErrorConnection)
{ {
return (new Acknowledgement return (new Acknowledgement
...@@ -60,7 +60,7 @@ namespace HTTPMessageNode.Controllers ...@@ -60,7 +60,7 @@ namespace HTTPMessageNode.Controllers
Console.WriteLine("new prio = " + message.LocalPriority); Console.WriteLine("new prio = " + message.LocalPriority);
string address = getAddressOfInstance(QueuerNode); string address = LoadBalancer.AddressResolver.getAddressOfInstance(Scheduler, ref discoveryClient);
if (address == ErrorConnection) if (address == ErrorConnection)
{ {
return (new Acknowledgement return (new Acknowledgement
...@@ -111,12 +111,12 @@ namespace HTTPMessageNode.Controllers ...@@ -111,12 +111,12 @@ namespace HTTPMessageNode.Controllers
} }
private string getAddressOfInstance(string instanceName) /*private string getAddressOfInstance(string instanceName)
{ {
string address = ""; string address = "";
try try
{ {
// instanceName = "Validator" or "QueuerNode" ... etc // instanceName = "Validator" or "Scheduler" ... etc
var y = discoveryClient.GetInstances(instanceName); /// write names to config file var y = discoveryClient.GetInstances(instanceName); /// write names to config file
address = y[0].Uri.ToString(); address = y[0].Uri.ToString();
...@@ -127,6 +127,6 @@ namespace HTTPMessageNode.Controllers ...@@ -127,6 +127,6 @@ namespace HTTPMessageNode.Controllers
{ {
return ErrorConnection; return ErrorConnection;
} }
} }*/
} }
} }
\ No newline at end of file

using HTTPMessageNode.Controllers;
using Steeltoe.Discovery;
namespace HTTPMessageNode.LoadBalancer
{
public class AddressResolver
{
private static Random random = new Random();
private static int offset = random.Next(200000,int.MaxValue);
public static string getAddressOfInstance(string instanceName , ref IDiscoveryClient discoveryClient)
{
string address = "";
try
{
// instanceName = "Validator" or "QueuerNode" ... etc
var y = discoveryClient.GetInstances(instanceName); /// write names to config file
int element = offset % y.Count;
address = y[element].Uri.ToString();
offset = 1 + (offset % y.Count);
return address;
}
catch (Exception ex)
{
return QueueMessageController.ErrorConnection;
}
}
}
}
4cfc54818bac6f68e42c2cdebb5e9d540dad794f 6f8efc80d26826db09c37cfadc07ee5cd0181d02
...@@ -15,3 +15,4 @@ ...@@ -15,3 +15,4 @@
2.0 2.0
2.0 2.0
2.0 2.0
2.0
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CSRedisCore" Version="3.8.803" />
<PackageReference Include="StackExchange.Redis" Version="2.8.0" />
</ItemGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SimpleStreamConsumerTest
{
public class MessageDTO
{
public string? clientID { get; set; }
public string? apiKey { get; set; }
public string? msgId { get; set; }
public string? phoneNumber { get; set; }
public int localPriority { get; set; }
public string? text { get; set; }
public string? tag { get; set; }
}
}
using CSRedis;
using SimpleStreamConsumerTest;
using StackExchange.Redis;
using Newtonsoft.Json;
var tokenSource = new CancellationTokenSource();
var token = tokenSource.Token;
string SYR = "localhost:6374";
var muxer = ConnectionMultiplexer.Connect(SYR);
var db = muxer.GetDatabase();
const string streamName3 = "3";
const string groupName = "SYS_MSGS";
const string myConsumerID = "some-id";
const int count = 1554; // at most reads (count) messages from a stream
var readManual = Task.Run(async () =>
{
/*TimeSpan blockTime = TimeSpan.FromSeconds(0.2);
string rest = "GROUP " + groupName + " id "
+ "BLOCK " + blockTime.TotalMilliseconds + " "
+ "COUNT " + count
+ " STREAMS " + streamName3 + " >";
string[] rest2 = { "GROUP "
, groupName
, myConsumerID
, "COUNT "
, count.ToString()
, "BLOCK "
, blockTime.TotalMilliseconds.ToString()
, "STREAMS "
, streamName3
,">"};
string[] rest3 = {groupName
, myConsumerID
, count.ToString()
, blockTime.TotalMilliseconds.ToString()
, streamName3
,">"};*/
string cmd = "XREADGROUP";
/*
items = r.xreadgroup("GROUP",GroupName,ConsumerName,"BLOCK","2000","COUNT","10","STREAMS",:my_stream_key,myid)
*/
// var res = db.Execute(cmd , rest3);
while (!token.IsCancellationRequested)
{
var res = await db.ExecuteAsync(cmd, "GROUP", groupName, myConsumerID, "BLOCK", 2000, "COUNT", 10, "STREAMS", streamName3, ">");
Console.WriteLine("length = " + res.Length);
if (res.Length <= 0) continue;
/*var temp = res[0].ToDictionary();
foreach (var r in temp)
{
Console.WriteLine(r.GetType());
Console.WriteLine(r.Value);
}*/
///
/// mesg -> Value -> [0] -> [1] -> [1]
///
var messages = res[0].ToDictionary();
foreach (var message in messages)
{
Console.WriteLine(message.Key);
Console.WriteLine(message.Value.GetType());
//Console.WriteLine(message.Value[0][1][1]);
MessageDTO? messaged = JsonConvert.DeserializeObject<MessageDTO>(message.Value[0][1][1]);
//Console.WriteLine(messaged);
}
Console.WriteLine("*******************************************************");
await Task.Delay(1000);
}
});
tokenSource.CancelAfter(TimeSpan.FromSeconds(300));
await Task.WhenAll(readManual);
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"ManualStreamConsumer/1.0.0": {
"dependencies": {
"CSRedisCore": "3.8.803",
"StackExchange.Redis": "2.8.0"
},
"runtime": {
"ManualStreamConsumer.dll": {}
}
},
"CSRedisCore/3.8.803": {
"dependencies": {
"Newtonsoft.Json": "13.0.1",
"System.ValueTuple": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/CSRedisCore.dll": {
"assemblyVersion": "3.8.803.0",
"fileVersion": "3.8.803.0"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"runtime": {
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"dependencies": {
"System.IO.Pipelines": "5.0.1"
},
"runtime": {
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "2.2.8.1080"
}
}
},
"StackExchange.Redis/2.8.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
"Pipelines.Sockets.Unofficial": "2.2.8"
},
"runtime": {
"lib/net6.0/StackExchange.Redis.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.8.0.27420"
}
}
},
"System.IO.Pipelines/5.0.1": {
"runtime": {
"lib/netcoreapp3.0/System.IO.Pipelines.dll": {
"assemblyVersion": "5.0.0.1",
"fileVersion": "5.0.120.57516"
}
}
},
"System.ValueTuple/4.5.0": {}
}
},
"libraries": {
"ManualStreamConsumer/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"CSRedisCore/3.8.803": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+tCmvsJy0f69WMARgRT9nmTtIiwJDkTl9g5H32r7mJ003IxeZKFhLkvjO6MIm/6o79wM+s0lLW4fYlBvWP8C8Q==",
"path": "csrediscore/3.8.803",
"hashPath": "csrediscore.3.8.803.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==",
"path": "microsoft.extensions.logging.abstractions/6.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
"path": "pipelines.sockets.unofficial/2.2.8",
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
},
"StackExchange.Redis/2.8.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MjAJ0ejH8zLhtuN5+Z+/I07NmPGdVuGEvE2+4xONQoFwgl+7vbQ/A6jlUgH9UkZb4s9Mu9QDyBq1TkRqQcOgTQ==",
"path": "stackexchange.redis/2.8.0",
"hashPath": "stackexchange.redis.2.8.0.nupkg.sha512"
},
"System.IO.Pipelines/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==",
"path": "system.io.pipelines/5.0.1",
"hashPath": "system.io.pipelines.5.0.1.nupkg.sha512"
},
"System.ValueTuple/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==",
"path": "system.valuetuple/4.5.0",
"hashPath": "system.valuetuple.4.5.0.nupkg.sha512"
}
}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
}
}
}
\ No newline at end of file
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ManualStreamConsumer")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("ManualStreamConsumer")]
[assembly: System.Reflection.AssemblyTitleAttribute("ManualStreamConsumer")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = ManualStreamConsumer
build_property.ProjectDir = D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ManualStreamConsumer.exe
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ManualStreamConsumer.deps.json
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ManualStreamConsumer.runtimeconfig.json
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ManualStreamConsumer.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ref\ManualStreamConsumer.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\ManualStreamConsumer.pdb
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\CSRedisCore.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\Microsoft.Extensions.Logging.Abstractions.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\Newtonsoft.Json.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\Pipelines.Sockets.Unofficial.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\StackExchange.Redis.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\bin\Debug\net6.0\System.IO.Pipelines.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.csproj.AssemblyReference.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.GeneratedMSBuildEditorConfig.editorconfig
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.AssemblyInfoInputs.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.AssemblyInfo.cs
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.csproj.CoreCompileInputs.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.csproj.CopyComplete
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ref\ManualStreamConsumer.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.pdb
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\ManualStreamConsumer\obj\Debug\net6.0\ManualStreamConsumer.genruntimeconfig.cache
{
"format": 1,
"restore": {
"D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\ManualStreamConsumer.csproj": {}
},
"projects": {
"D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\ManualStreamConsumer.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\ManualStreamConsumer.csproj",
"projectName": "ManualStreamConsumer",
"projectPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\ManualStreamConsumer.csproj",
"packagesPath": "C:\\Users\\moham\\.nuget\\packages\\",
"outputPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\moham\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"CSRedisCore": {
"target": "Package",
"version": "[3.8.803, )"
},
"StackExchange.Redis": {
"target": "Package",
"version": "[2.8.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\moham\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\moham\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
\ No newline at end of file
This diff is collapsed.
{
"version": 2,
"dgSpecHash": "6cENbdzNq8kT6/MlTWGw5Q0+MWX12aoV2sPjjfcu5+rOITIeeJ/byAYfge6HWDqZgh2RetSCaiWbDD9/Cjs8qA==",
"success": true,
"projectFilePath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\ManualStreamConsumer\\ManualStreamConsumer.csproj",
"expectedPackageFiles": [
"C:\\Users\\moham\\.nuget\\packages\\csrediscore\\3.8.803\\csrediscore.3.8.803.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\6.0.0\\microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\stackexchange.redis\\2.8.0\\stackexchange.redis.2.8.0.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\system.io.pipelines\\5.0.1\\system.io.pipelines.5.0.1.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512"
],
"logs": []
}
\ No newline at end of file
using MessageGeneratorGRPC; using GGRPCMessageGenerator;
using Steeltoe.Discovery.Client; using Steeltoe.Discovery.Client;
IHost host = Host.CreateDefaultBuilder(args) IHost host = Host.CreateDefaultBuilder(args)
......
syntax = "proto3"; syntax = "proto3";
option csharp_namespace = "MessageGeneratorGRPC"; option csharp_namespace = "GGRPCMessageGenerator";
package Tranmitter; package Tranmitter;
......
using Grpc.Net.Client; using Grpc.Net.Client;
using Steeltoe.Discovery; using Steeltoe.Discovery;
namespace MessageGeneratorGRPC namespace GGRPCMessageGenerator
{ {
public class Worker : BackgroundService public class Worker : BackgroundService
{ {
......
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("dotnet-MessageGeneratorGRPC-685F4B88-9109-41BE-B200-D1916D3E7EAB")]
[assembly: System.Reflection.AssemblyCompanyAttribute("GRPCMessageGenerator")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("GRPCMessageGenerator")]
[assembly: System.Reflection.AssemblyTitleAttribute("GRPCMessageGenerator")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = GRPCMessageGenerator
build_property.ProjectDir = D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\MessageGeneratorGRPC\
// <auto-generated/>
global using global::Microsoft.Extensions.Configuration;
global using global::Microsoft.Extensions.DependencyInjection;
global using global::Microsoft.Extensions.Hosting;
global using global::Microsoft.Extensions.Logging;
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
...@@ -9,7 +9,7 @@ using pb = global::Google.Protobuf; ...@@ -9,7 +9,7 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections; using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection; using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic; using scg = global::System.Collections.Generic;
namespace MessageGeneratorGRPC { namespace GGRPCMessageGenerator {
/// <summary>Holder for reflection information generated from Protos/schema.proto</summary> /// <summary>Holder for reflection information generated from Protos/schema.proto</summary>
public static partial class SchemaReflection { public static partial class SchemaReflection {
...@@ -30,13 +30,13 @@ namespace MessageGeneratorGRPC { ...@@ -30,13 +30,13 @@ namespace MessageGeneratorGRPC {
"ASgFEgwKBHRleHQYBiABKAkSCwoDdGFnGAcgASgJIjcKD0Fja25vd2xlZGdl", "ASgFEgwKBHRleHQYBiABKAkSCwoDdGFnGAcgASgJIjcKD0Fja25vd2xlZGdl",
"bWVudBIRCglyZXBseUNvZGUYASABKAkSEQoJcmVxdWVzdElEGAIgASgJMkcK", "bWVudBIRCglyZXBseUNvZGUYASABKAkSEQoJcmVxdWVzdElEGAIgASgJMkcK",
"BFNlbmQSPwoLU2VuZE1lc3NhZ2USEy5UcmFubWl0dGVyLk1lc3NhZ2UaGy5U", "BFNlbmQSPwoLU2VuZE1lc3NhZ2USEy5UcmFubWl0dGVyLk1lc3NhZ2UaGy5U",
"cmFubWl0dGVyLkFja25vd2xlZGdlbWVudEIXqgIUTWVzc2FnZUdlbmVyYXRv", "cmFubWl0dGVyLkFja25vd2xlZGdlbWVudEIYqgIVR0dSUENNZXNzYWdlR2Vu",
"ckdSUENiBnByb3RvMw==")); "ZXJhdG9yYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { }, new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::MessageGeneratorGRPC.Message), global::MessageGeneratorGRPC.Message.Parser, new[]{ "ClientID", "ApiKey", "MsgId", "PhoneNumber", "LocalPriority", "Text", "Tag" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::GGRPCMessageGenerator.Message), global::GGRPCMessageGenerator.Message.Parser, new[]{ "ClientID", "ApiKey", "MsgId", "PhoneNumber", "LocalPriority", "Text", "Tag" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::MessageGeneratorGRPC.Acknowledgement), global::MessageGeneratorGRPC.Acknowledgement.Parser, new[]{ "ReplyCode", "RequestID" }, null, null, null, null) new pbr::GeneratedClrTypeInfo(typeof(global::GGRPCMessageGenerator.Acknowledgement), global::GGRPCMessageGenerator.Acknowledgement.Parser, new[]{ "ReplyCode", "RequestID" }, null, null, null, null)
})); }));
} }
#endregion #endregion
...@@ -58,7 +58,7 @@ namespace MessageGeneratorGRPC { ...@@ -58,7 +58,7 @@ namespace MessageGeneratorGRPC {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
get { return global::MessageGeneratorGRPC.SchemaReflection.Descriptor.MessageTypes[0]; } get { return global::GGRPCMessageGenerator.SchemaReflection.Descriptor.MessageTypes[0]; }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
...@@ -470,7 +470,7 @@ namespace MessageGeneratorGRPC { ...@@ -470,7 +470,7 @@ namespace MessageGeneratorGRPC {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
get { return global::MessageGeneratorGRPC.SchemaReflection.Descriptor.MessageTypes[1]; } get { return global::GGRPCMessageGenerator.SchemaReflection.Descriptor.MessageTypes[1]; }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
using grpc = global::Grpc.Core; using grpc = global::Grpc.Core;
namespace MessageGeneratorGRPC { namespace GGRPCMessageGenerator {
public static partial class Send public static partial class Send
{ {
static readonly string __ServiceName = "Tranmitter.Send"; static readonly string __ServiceName = "Tranmitter.Send";
...@@ -46,12 +46,12 @@ namespace MessageGeneratorGRPC { ...@@ -46,12 +46,12 @@ namespace MessageGeneratorGRPC {
} }
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::MessageGeneratorGRPC.Message> __Marshaller_Tranmitter_Message = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::MessageGeneratorGRPC.Message.Parser)); static readonly grpc::Marshaller<global::GGRPCMessageGenerator.Message> __Marshaller_Tranmitter_Message = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::GGRPCMessageGenerator.Message.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::MessageGeneratorGRPC.Acknowledgement> __Marshaller_Tranmitter_Acknowledgement = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::MessageGeneratorGRPC.Acknowledgement.Parser)); static readonly grpc::Marshaller<global::GGRPCMessageGenerator.Acknowledgement> __Marshaller_Tranmitter_Acknowledgement = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::GGRPCMessageGenerator.Acknowledgement.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::MessageGeneratorGRPC.Message, global::MessageGeneratorGRPC.Acknowledgement> __Method_SendMessage = new grpc::Method<global::MessageGeneratorGRPC.Message, global::MessageGeneratorGRPC.Acknowledgement>( static readonly grpc::Method<global::GGRPCMessageGenerator.Message, global::GGRPCMessageGenerator.Acknowledgement> __Method_SendMessage = new grpc::Method<global::GGRPCMessageGenerator.Message, global::GGRPCMessageGenerator.Acknowledgement>(
grpc::MethodType.Unary, grpc::MethodType.Unary,
__ServiceName, __ServiceName,
"SendMessage", "SendMessage",
...@@ -61,7 +61,7 @@ namespace MessageGeneratorGRPC { ...@@ -61,7 +61,7 @@ namespace MessageGeneratorGRPC {
/// <summary>Service descriptor</summary> /// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{ {
get { return global::MessageGeneratorGRPC.SchemaReflection.Descriptor.Services[0]; } get { return global::GGRPCMessageGenerator.SchemaReflection.Descriptor.Services[0]; }
} }
/// <summary>Client for Send</summary> /// <summary>Client for Send</summary>
...@@ -92,22 +92,22 @@ namespace MessageGeneratorGRPC { ...@@ -92,22 +92,22 @@ namespace MessageGeneratorGRPC {
} }
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::MessageGeneratorGRPC.Acknowledgement SendMessage(global::MessageGeneratorGRPC.Message request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) public virtual global::GGRPCMessageGenerator.Acknowledgement SendMessage(global::GGRPCMessageGenerator.Message request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{ {
return SendMessage(request, new grpc::CallOptions(headers, deadline, cancellationToken)); return SendMessage(request, new grpc::CallOptions(headers, deadline, cancellationToken));
} }
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::MessageGeneratorGRPC.Acknowledgement SendMessage(global::MessageGeneratorGRPC.Message request, grpc::CallOptions options) public virtual global::GGRPCMessageGenerator.Acknowledgement SendMessage(global::GGRPCMessageGenerator.Message request, grpc::CallOptions options)
{ {
return CallInvoker.BlockingUnaryCall(__Method_SendMessage, null, options, request); return CallInvoker.BlockingUnaryCall(__Method_SendMessage, null, options, request);
} }
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::MessageGeneratorGRPC.Acknowledgement> SendMessageAsync(global::MessageGeneratorGRPC.Message request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) public virtual grpc::AsyncUnaryCall<global::GGRPCMessageGenerator.Acknowledgement> SendMessageAsync(global::GGRPCMessageGenerator.Message request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{ {
return SendMessageAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); return SendMessageAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
} }
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::MessageGeneratorGRPC.Acknowledgement> SendMessageAsync(global::MessageGeneratorGRPC.Message request, grpc::CallOptions options) public virtual grpc::AsyncUnaryCall<global::GGRPCMessageGenerator.Acknowledgement> SendMessageAsync(global::GGRPCMessageGenerator.Message request, grpc::CallOptions options)
{ {
return CallInvoker.AsyncUnaryCall(__Method_SendMessage, null, options, request); return CallInvoker.AsyncUnaryCall(__Method_SendMessage, null, options, request);
} }
......
{
"format": 1,
"restore": {
"D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj": {}
},
"projects": {
"D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj",
"projectName": "GRPCMessageGenerator",
"projectPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj",
"packagesPath": "C:\\Users\\moham\\.nuget\\packages\\",
"outputPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\moham\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"Google.Protobuf": {
"target": "Package",
"version": "[3.27.2, )"
},
"Grpc.Net.Client": {
"target": "Package",
"version": "[2.63.0, )"
},
"Grpc.Tools": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[2.64.0, )"
},
"Microsoft.Extensions.Hosting": {
"target": "Package",
"version": "[6.0.0, )"
},
"Steeltoe.Connector.ConnectorCore": {
"target": "Package",
"version": "[3.2.6, )"
},
"Steeltoe.Discovery.Eureka": {
"target": "Package",
"version": "[3.2.6, )"
},
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[6.4.*, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\moham\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\moham\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props')" />
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore\6.4.0\build\Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore\6.4.0\build\Swashbuckle.AspNetCore.props')" />
<Import Project="$(NuGetPackageRoot)grpc.tools\2.64.0\build\Grpc.Tools.props" Condition="Exists('$(NuGetPackageRoot)grpc.tools\2.64.0\build\Grpc.Tools.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\moham\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>
<PkgGrpc_Tools Condition=" '$(PkgGrpc_Tools)' == '' ">C:\Users\moham\.nuget\packages\grpc.tools\2.64.0</PkgGrpc_Tools>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
<Import Project="$(NuGetPackageRoot)grpc.tools\2.64.0\build\Grpc.Tools.targets" Condition="Exists('$(NuGetPackageRoot)grpc.tools\2.64.0\build\Grpc.Tools.targets')" />
</ImportGroup>
</Project>
\ No newline at end of file
...@@ -2299,9 +2299,9 @@ ...@@ -2299,9 +2299,9 @@
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\MessageGeneratorGRPC.csproj", "projectUniqueName": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj",
"projectName": "MessageGeneratorGRPC", "projectName": "GRPCMessageGenerator",
"projectPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\MessageGeneratorGRPC.csproj", "projectPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj",
"packagesPath": "C:\\Users\\moham\\.nuget\\packages\\", "packagesPath": "C:\\Users\\moham\\.nuget\\packages\\",
"outputPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\obj\\", "outputPath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
......
{ {
"version": 2, "version": 2,
"dgSpecHash": "/RqSpcKHJ6tQrjMLOCYr1ka5c7HzNSoqnHcGFF3d0MYNnEgOhx4ZJyVq1FLi4AEM2IPvbLLFqbVwQo9lvBtLRQ==", "dgSpecHash": "6gKkdz/XUTFH4agWGPaB6l+tLec8NuslHQFYeZm9Az0ubFd5h2z/VrnVrxjSqurEXtET6KJX2mYw4EOWV40XGg==",
"success": true, "success": true,
"projectFilePath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\MessageGeneratorGRPC.csproj", "projectFilePath": "D:\\HIAST\\FIY\\Project-MSGPriorityQ\\GrpcMessage\\message-priority-queue\\MessageGeneratorGRPC\\GRPCMessageGenerator.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"C:\\Users\\moham\\.nuget\\packages\\google.protobuf\\3.27.2\\google.protobuf.3.27.2.nupkg.sha512", "C:\\Users\\moham\\.nuget\\packages\\google.protobuf\\3.27.2\\google.protobuf.3.27.2.nupkg.sha512",
"C:\\Users\\moham\\.nuget\\packages\\grpc.core.api\\2.63.0\\grpc.core.api.2.63.0.nupkg.sha512", "C:\\Users\\moham\\.nuget\\packages\\grpc.core.api\\2.63.0\\grpc.core.api.2.63.0.nupkg.sha512",
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PriorityStream
{
public class MessageDTO
{
public string? clientID { get; set; }
public string? apiKey { get; set; }
public string? msgId { get; set; }
public string? phoneNumber { get; set; }
public int localPriority { get; set; }
public string? text { get; set; }
public string? tag { get; set; }
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CSRedisCore" Version="3.8.803" />
<PackageReference Include="StackExchange.Redis" Version="2.8.0" />
</ItemGroup>
</Project>
using CSRedis;
using StackExchange.Redis;
using Newtonsoft.Json;
using PriorityStream;
var tokenSource = new CancellationTokenSource();
var token = tokenSource.Token;
string REDIS = "localhost:6379";
var muxer = ConnectionMultiplexer.Connect(REDIS);
var db = muxer.GetDatabase();
var server = muxer.GetServers();
const string streamName = "SYR_3";
const string groupName = "SYS_MSGS";
const string myConsumerID = "some-id";
const int count = 1554; // at most reads (count) messages from a stream
Console.WriteLine(server[0].DatabaseSize());
/*
var readManual = Task.Run(async () =>
{
List<RedisValue> msgsID = new List<RedisValue>();
while (!token.IsCancellationRequested)
{
var messages = await db.StreamReadGroupAsync(streamName, groupName, myConsumerID, ">", count, true); ;
//db.StreamDeleteAsync(streamName, msgsID);
foreach (var entry in messages)
{
// Get the message ID
var messageId = entry.Id;
msgsID.Add(messageId);
Console.WriteLine(messageId);
// Access the message data (serialized JSON)
string? serializedMessage = entry.Values[0].Value.ToString();
Console.WriteLine(serializedMessage);
if (serializedMessage == null) continue;
// Deserialize the JSON back to a Message object (if needed)
MessageDTO? message = JsonConvert.DeserializeObject<MessageDTO>(serializedMessage);
if (message == null) continue;
// Process the message data
Console.WriteLine($"Message ID: {messageId}, Text: {message.msgId}, tag: {message.tag}");
}
StreamInfo res32 = db.StreamInfo(streamName);
Console.WriteLine(res32.Length);
//Console.WriteLine($"length: {res32.Length}, radix-tree-keys: {res32.RadixTreeKeys}, radix-tree-nodes: {res32.RadixTreeNodes}, last-generated-id: {res32.LastGeneratedId}, first-entry: {$"{res32.FirstEntry.Id}: [{string.Join(", ", res32.FirstEntry.Values.Select(b => $"{b.Name}: {b.Value}"))}]"}, last-entry: {$"{res32.LastEntry.Id}: [{string.Join(", ", res32.LastEntry.Values.Select(b => $"{b.Name}: {b.Value}"))}]"}");
Console.WriteLine("*******************************************************\n\n\n\n\n\n");
try
{
var x = res32.FirstEntry.Id;
var y = res32.LastEntry.Id;
await db.StreamDeleteAsync(streamName, msgsID.ToArray());
}
catch (Exception ex)
{
}
finally
{
await Task.Delay(1000);
}
}
});
tokenSource.CancelAfter(TimeSpan.FromSeconds(300));
await Task.WhenAll(readManual);
/*StreamInfo res32 = db.StreamInfo(streamName);
Console.WriteLine($"length: {res32.Length}, radix-tree-keys: {res32.RadixTreeKeys}, radix-tree-nodes: {res32.RadixTreeNodes}, last-generated-id: {res32.LastGeneratedId}, first-entry: {$"{res32.FirstEntry.Id}: [{string.Join(", ", res32.FirstEntry.Values.Select(b => $"{b.Name}: {b.Value}"))}]"}, last-entry: {$"{res32.LastEntry.Id}: [{string.Join(", ", res32.LastEntry.Values.Select(b => $"{b.Name}: {b.Value}"))}]"}");
var x = res32.FirstEntry.Id;
var y = res32.LastEntry.Id;
RedisValue[] redisValues = new RedisValue[2];
redisValues[0] = x;
redisValues[1] = y;
await db.StreamDeleteAsync(streamName , redisValues);*/
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"PriorityStream/1.0.0": {
"dependencies": {
"CSRedisCore": "3.8.803",
"StackExchange.Redis": "2.8.0"
},
"runtime": {
"PriorityStream.dll": {}
}
},
"CSRedisCore/3.8.803": {
"dependencies": {
"Newtonsoft.Json": "13.0.1",
"System.ValueTuple": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/CSRedisCore.dll": {
"assemblyVersion": "3.8.803.0",
"fileVersion": "3.8.803.0"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"runtime": {
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"dependencies": {
"System.IO.Pipelines": "5.0.1"
},
"runtime": {
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "2.2.8.1080"
}
}
},
"StackExchange.Redis/2.8.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
"Pipelines.Sockets.Unofficial": "2.2.8"
},
"runtime": {
"lib/net6.0/StackExchange.Redis.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.8.0.27420"
}
}
},
"System.IO.Pipelines/5.0.1": {
"runtime": {
"lib/netcoreapp3.0/System.IO.Pipelines.dll": {
"assemblyVersion": "5.0.0.1",
"fileVersion": "5.0.120.57516"
}
}
},
"System.ValueTuple/4.5.0": {}
}
},
"libraries": {
"PriorityStream/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"CSRedisCore/3.8.803": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+tCmvsJy0f69WMARgRT9nmTtIiwJDkTl9g5H32r7mJ003IxeZKFhLkvjO6MIm/6o79wM+s0lLW4fYlBvWP8C8Q==",
"path": "csrediscore/3.8.803",
"hashPath": "csrediscore.3.8.803.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==",
"path": "microsoft.extensions.logging.abstractions/6.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
"path": "pipelines.sockets.unofficial/2.2.8",
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
},
"StackExchange.Redis/2.8.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MjAJ0ejH8zLhtuN5+Z+/I07NmPGdVuGEvE2+4xONQoFwgl+7vbQ/A6jlUgH9UkZb4s9Mu9QDyBq1TkRqQcOgTQ==",
"path": "stackexchange.redis/2.8.0",
"hashPath": "stackexchange.redis.2.8.0.nupkg.sha512"
},
"System.IO.Pipelines/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==",
"path": "system.io.pipelines/5.0.1",
"hashPath": "system.io.pipelines.5.0.1.nupkg.sha512"
},
"System.ValueTuple/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==",
"path": "system.valuetuple/4.5.0",
"hashPath": "system.valuetuple.4.5.0.nupkg.sha512"
}
}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
}
}
}
\ No newline at end of file
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("PriorityStream")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PriorityStream")]
[assembly: System.Reflection.AssemblyTitleAttribute("PriorityStream")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = PriorityStream
build_property.ProjectDir = D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\PriorityStream.exe
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\PriorityStream.deps.json
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\PriorityStream.runtimeconfig.json
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\PriorityStream.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\ref\PriorityStream.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\PriorityStream.pdb
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\CSRedisCore.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\Microsoft.Extensions.Logging.Abstractions.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\Newtonsoft.Json.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\Pipelines.Sockets.Unofficial.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\StackExchange.Redis.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\bin\Debug\net6.0\System.IO.Pipelines.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.csproj.AssemblyReference.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.GeneratedMSBuildEditorConfig.editorconfig
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.AssemblyInfoInputs.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.AssemblyInfo.cs
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.csproj.CoreCompileInputs.cache
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.csproj.CopyComplete
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\ref\PriorityStream.dll
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.pdb
D:\HIAST\FIY\Project-MSGPriorityQ\GrpcMessage\message-priority-queue\PriorityStream\obj\Debug\net6.0\PriorityStream.genruntimeconfig.cache
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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