Waste/Waste.SocketService.cs/Program.cs

164 lines
7.7 KiB
C#
Raw Normal View History

2021-11-23 17:49:40 +08:00
using DotNetCore.CAP;
using Furion;
using Furion.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
using Serilog;
using Serilog.Events;
using SuperSocket;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Waste.SocketService
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.Inject()
//<2F><>־ע<D6BE><D7A2>,<2C><>serilog<6F><67><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>־<EFBFBD><D6BE>¼<EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD>
.UseSerilogDefault(config =>
{
var filepath = App.Configuration["logfile"];
string date = DateTime.Now.ToString("yyyy-MM-dd");//<2F><>ʱ<EFBFBD><EFBFBD><E4B4B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
string outputTemplate = "{NewLine}<7D><>{Level:u3}<7D><>{Timestamp:yyyy-MM-dd HH:mm:ss.fff}" +
"{NewLine}#Msg#{Message:lj}" +
"{NewLine}#Pro #{Properties:j}" +
"{NewLine}#Exc#{Exception}" +
new string('-', 50);//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
//1.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>restrictedToMinimumLevel<65><6C>LogEventLevel<65><6C><EFBFBD><EFBFBD>
config
.WriteTo.Seq("http://localhost:5341/")
//2.1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LogEventLevel.Debug <20><><EFBFBD><EFBFBD>
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Debug)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Debug}.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>׺
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
)
)
//2.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LogEventLevel.Error <20><><EFBFBD><EFBFBD>
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Error)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Error}.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>׺
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
)
)
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Information)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Information}.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>׺
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
)
)
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Fatal)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Fatal}.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>׺
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
)
)
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Warning)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Warning}.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>׺
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
)
)
;
})
.ConfigureServices((hostContext, services) =>
{
var configuration = hostContext.Configuration;
//<2F><><EFBFBD><EFBFBD>CAP֧<50><D6A7>
services.AddCap(x =>
{
x.DefaultGroupName = "jtsky.queue.waste";
//<2F><><EFBFBD><EFBFBD>rabbitmq֧<71><D6A7>
string port = configuration["RabbitmqSetting:Port"];
int p = Convert.ToInt32(port);
x.UseRabbitMQ(opt =>
{
opt.HostName = configuration["RabbitmqSetting:HostName"]; //<2F><><EFBFBD><EFBFBD>ip<69><70>ַ
opt.Port = p;//<2F><><EFBFBD>ö˿<C3B6>
opt.UserName = configuration["RabbitmqSetting:UserName"];//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
opt.Password = configuration["RabbitmqSetting:Password"];//<2F><><EFBFBD><EFBFBD>Miami
});
//<2F><><EFBFBD><EFBFBD>sqlserver֧<72><D6A7>
x.UseSqlServer(configuration["RabbitmqSetting:DBConnection"]);
2022-06-21 14:20:09 +08:00
x.SucceedMessageExpiredAfter = 3600;
2021-11-23 17:49:40 +08:00
});
})
.AsSuperSocketHostBuilder<MyPackage, WastePackageFilter>()
.UsePackageHandler(async (session, package) =>
{
//<2F><>rabbitmq<6D><71><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
await Scoped.Create(async (_, scope) =>
{
var services = scope.ServiceProvider;
var _capBus = services.GetService<ICapPublisher>();
var _logger = services.GetService<ILogger>();
if (package.IsChecked)
{
string msg = $"ͨ<><CDA8>У<EFBFBD><D0A3><><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.Body},<2C>ַ<EFBFBD><D6B7><EFBFBD>:{package.Str}";
if (package.IsHeart)
{
2022-06-18 14:58:15 +08:00
msg = $"{msg},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,{(package == null ? "" : JsonConvert.SerializeObject(package))}";
2021-11-23 17:49:40 +08:00
}
else
{
2022-05-17 18:07:00 +08:00
msg = $"{msg},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,{(package == null ? "" : JsonConvert.SerializeObject(package))}";
2021-11-23 17:49:40 +08:00
if (package.IsWeight)
{
2022-06-18 14:58:15 +08:00
if (package.Key == "A8")
{
msg = $"{msg},uuid:{package.UUID},<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>:{package.UploadTime},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.WasteType},С<><D0A1>:{package.WasteSType},<2C><><EFBFBD><EFBFBD>:{package.Weight},<2C>۸<EFBFBD>:{package.Price},<2C><><EFBFBD><EFBFBD>:{package.Amount},<2C><><EFBFBD><EFBFBD>Ա:{package.OpUser}";
}
else
{
msg = $"{msg},Ͱ<><CDB0>С:{package.size},<2C><><EFBFBD><EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD>:{package.trashcode},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.WasteType},<2C><><EFBFBD><EFBFBD>:{package.Weight}KG";
}
2021-11-23 17:49:40 +08:00
}
else
{
msg = $"{msg},<2C><><EFBFBD><EFBFBD>:{package.size}";
}
}
_logger.Information(msg);
2022-06-18 14:58:15 +08:00
if (package.Key == "A8")
{
await _capBus.PublishAsync("result.service.inserta84g", package);
if (!session.Channel.IsClosed)
{
string returndata = $"STATUS,OK,{package.UUID}";
await session.SendAsync(Encoding.GetEncoding("GB2312").GetBytes(returndata + "\r\n"));
}
}
else
{
await _capBus.PublishAsync("result.service.insert4g", package);
}
2021-11-23 17:49:40 +08:00
}
else
{
_logger.Information($"δͨ<CEB4><CDA8>У<EFBFBD><D0A3><><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.Body},<2C>ַ<EFBFBD><D6B7><EFBFBD>:{package.Str}");
}
});
})
;
}
}