@@ -0,0 +1,30 @@ | |||
**/.classpath | |||
**/.dockerignore | |||
**/.env | |||
**/.git | |||
**/.gitignore | |||
**/.project | |||
**/.settings | |||
**/.toolstarget | |||
**/.vs | |||
**/.vscode | |||
**/*.*proj.user | |||
**/*.dbmdl | |||
**/*.jfm | |||
**/azds.yaml | |||
**/bin | |||
**/charts | |||
**/docker-compose* | |||
**/Dockerfile* | |||
**/node_modules | |||
**/npm-debug.log | |||
**/obj | |||
**/secrets.dev.yaml | |||
**/values.dev.yaml | |||
LICENSE | |||
README.md | |||
!**/.gitignore | |||
!.git/HEAD | |||
!.git/config | |||
!.git/packed-refs | |||
!.git/refs/heads/** |
@@ -0,0 +1,340 @@ | |||
## Ignore Visual Studio temporary files, build results, and | |||
## files generated by popular Visual Studio add-ons. | |||
## | |||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | |||
# User-specific files | |||
*.rsuser | |||
*.suo | |||
*.user | |||
*.userosscache | |||
*.sln.docstates | |||
# User-specific files (MonoDevelop/Xamarin Studio) | |||
*.userprefs | |||
# Build results | |||
[Dd]ebug/ | |||
[Dd]ebugPublic/ | |||
[Rr]elease/ | |||
[Rr]eleases/ | |||
x64/ | |||
x86/ | |||
[Aa][Rr][Mm]/ | |||
[Aa][Rr][Mm]64/ | |||
bld/ | |||
[Bb]in/ | |||
[Oo]bj/ | |||
[Ll]og/ | |||
# Visual Studio 2015/2017 cache/options directory | |||
.vs/ | |||
# Uncomment if you have tasks that create the project's static files in wwwroot | |||
#wwwroot/ | |||
# Visual Studio 2017 auto generated files | |||
Generated\ Files/ | |||
# MSTest test Results | |||
[Tt]est[Rr]esult*/ | |||
[Bb]uild[Ll]og.* | |||
# NUNIT | |||
*.VisualState.xml | |||
TestResult.xml | |||
# Build Results of an ATL Project | |||
[Dd]ebugPS/ | |||
[Rr]eleasePS/ | |||
dlldata.c | |||
# Benchmark Results | |||
BenchmarkDotNet.Artifacts/ | |||
# .NET Core | |||
project.lock.json | |||
project.fragment.lock.json | |||
artifacts/ | |||
# StyleCop | |||
StyleCopReport.xml | |||
# Files built by Visual Studio | |||
*_i.c | |||
*_p.c | |||
*_h.h | |||
*.ilk | |||
*.meta | |||
*.obj | |||
*.iobj | |||
*.pch | |||
*.pdb | |||
*.ipdb | |||
*.pgc | |||
*.pgd | |||
*.rsp | |||
*.sbr | |||
*.tlb | |||
*.tli | |||
*.tlh | |||
*.tmp | |||
*.tmp_proj | |||
*_wpftmp.csproj | |||
*.log | |||
*.vspscc | |||
*.vssscc | |||
.builds | |||
*.pidb | |||
*.svclog | |||
*.scc | |||
# Chutzpah Test files | |||
_Chutzpah* | |||
# Visual C++ cache files | |||
ipch/ | |||
*.aps | |||
*.ncb | |||
*.opendb | |||
*.opensdf | |||
*.sdf | |||
*.cachefile | |||
*.VC.db | |||
*.VC.VC.opendb | |||
# Visual Studio profiler | |||
*.psess | |||
*.vsp | |||
*.vspx | |||
*.sap | |||
# Visual Studio Trace Files | |||
*.e2e | |||
# TFS 2012 Local Workspace | |||
$tf/ | |||
# Guidance Automation Toolkit | |||
*.gpState | |||
# ReSharper is a .NET coding add-in | |||
_ReSharper*/ | |||
*.[Rr]e[Ss]harper | |||
*.DotSettings.user | |||
# JustCode is a .NET coding add-in | |||
.JustCode | |||
# TeamCity is a build add-in | |||
_TeamCity* | |||
# DotCover is a Code Coverage Tool | |||
*.dotCover | |||
# AxoCover is a Code Coverage Tool | |||
.axoCover/* | |||
!.axoCover/settings.json | |||
# Visual Studio code coverage results | |||
*.coverage | |||
*.coveragexml | |||
# NCrunch | |||
_NCrunch_* | |||
.*crunch*.local.xml | |||
nCrunchTemp_* | |||
# MightyMoose | |||
*.mm.* | |||
AutoTest.Net/ | |||
# Web workbench (sass) | |||
.sass-cache/ | |||
# Installshield output folder | |||
[Ee]xpress/ | |||
# DocProject is a documentation generator add-in | |||
DocProject/buildhelp/ | |||
DocProject/Help/*.HxT | |||
DocProject/Help/*.HxC | |||
DocProject/Help/*.hhc | |||
DocProject/Help/*.hhk | |||
DocProject/Help/*.hhp | |||
DocProject/Help/Html2 | |||
DocProject/Help/html | |||
# Click-Once directory | |||
publish/ | |||
# Publish Web Output | |||
*.[Pp]ublish.xml | |||
*.azurePubxml | |||
# Note: Comment the next line if you want to checkin your web deploy settings, | |||
# but database connection strings (with potential passwords) will be unencrypted | |||
*.pubxml | |||
*.publishproj | |||
# Microsoft Azure Web App publish settings. Comment the next line if you want to | |||
# checkin your Azure Web App publish settings, but sensitive information contained | |||
# in these scripts will be unencrypted | |||
PublishScripts/ | |||
# NuGet Packages | |||
*.nupkg | |||
# The packages folder can be ignored because of Package Restore | |||
**/[Pp]ackages/* | |||
# except build/, which is used as an MSBuild target. | |||
!**/[Pp]ackages/build/ | |||
# Uncomment if necessary however generally it will be regenerated when needed | |||
#!**/[Pp]ackages/repositories.config | |||
# NuGet v3's project.json files produces more ignorable files | |||
*.nuget.props | |||
*.nuget.targets | |||
# Microsoft Azure Build Output | |||
csx/ | |||
*.build.csdef | |||
# Microsoft Azure Emulator | |||
ecf/ | |||
rcf/ | |||
# Windows Store app package directories and files | |||
AppPackages/ | |||
BundleArtifacts/ | |||
Package.StoreAssociation.xml | |||
_pkginfo.txt | |||
*.appx | |||
# Visual Studio cache files | |||
# files ending in .cache can be ignored | |||
*.[Cc]ache | |||
# but keep track of directories ending in .cache | |||
!?*.[Cc]ache/ | |||
# Others | |||
ClientBin/ | |||
~$* | |||
*~ | |||
*.dbmdl | |||
*.dbproj.schemaview | |||
*.jfm | |||
*.pfx | |||
*.publishsettings | |||
orleans.codegen.cs | |||
# Including strong name files can present a security risk | |||
# (https://github.com/github/gitignore/pull/2483#issue-259490424) | |||
#*.snk | |||
# Since there are multiple workflows, uncomment next line to ignore bower_components | |||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) | |||
#bower_components/ | |||
# RIA/Silverlight projects | |||
Generated_Code/ | |||
# Backup & report files from converting an old project file | |||
# to a newer Visual Studio version. Backup files are not needed, | |||
# because we have git ;-) | |||
_UpgradeReport_Files/ | |||
Backup*/ | |||
UpgradeLog*.XML | |||
UpgradeLog*.htm | |||
ServiceFabricBackup/ | |||
*.rptproj.bak | |||
# SQL Server files | |||
*.mdf | |||
*.ldf | |||
*.ndf | |||
# Business Intelligence projects | |||
*.rdl.data | |||
*.bim.layout | |||
*.bim_*.settings | |||
*.rptproj.rsuser | |||
*- Backup*.rdl | |||
# Microsoft Fakes | |||
FakesAssemblies/ | |||
# GhostDoc plugin setting file | |||
*.GhostDoc.xml | |||
# Node.js Tools for Visual Studio | |||
.ntvs_analysis.dat | |||
node_modules/ | |||
# Visual Studio 6 build log | |||
*.plg | |||
# Visual Studio 6 workspace options file | |||
*.opt | |||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) | |||
*.vbw | |||
# Visual Studio LightSwitch build output | |||
**/*.HTMLClient/GeneratedArtifacts | |||
**/*.DesktopClient/GeneratedArtifacts | |||
**/*.DesktopClient/ModelManifest.xml | |||
**/*.Server/GeneratedArtifacts | |||
**/*.Server/ModelManifest.xml | |||
_Pvt_Extensions | |||
# Paket dependency manager | |||
.paket/paket.exe | |||
paket-files/ | |||
# FAKE - F# Make | |||
.fake/ | |||
# JetBrains Rider | |||
.idea/ | |||
*.sln.iml | |||
# CodeRush personal settings | |||
.cr/personal | |||
# Python Tools for Visual Studio (PTVS) | |||
__pycache__/ | |||
*.pyc | |||
# Cake - Uncomment if you are using it | |||
# tools/** | |||
# !tools/packages.config | |||
# Tabs Studio | |||
*.tss | |||
# Telerik's JustMock configuration file | |||
*.jmconfig | |||
# BizTalk build output | |||
*.btp.cs | |||
*.btm.cs | |||
*.odx.cs | |||
*.xsd.cs | |||
# OpenCover UI analysis results | |||
OpenCover/ | |||
# Azure Stream Analytics local run output | |||
ASALocalRun/ | |||
# MSBuild Binary and Structured Log | |||
*.binlog | |||
# NVidia Nsight GPU debugger configuration file | |||
*.nvuser | |||
# MFractors (Xamarin productivity tool) working folder | |||
.mfractor/ | |||
# Local History for Visual Studio | |||
.localhistory/ | |||
# BeatPulse healthcheck temp database | |||
healthchecksdb |
@@ -0,0 +1,33 @@ | |||
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. | |||
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS base | |||
WORKDIR /app | |||
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build | |||
WORKDIR /src | |||
COPY ["TelpoPush.Position.Worker/TelpoPush.Position.Worker.csproj", "TelpoPush.Position.Worker/"] | |||
COPY ["nuget.config","."] | |||
RUN dotnet nuget remove source nuget.org | |||
RUN dotnet nuget add source https://repo.huaweicloud.com/repository/nuget/v3/index.json -n huaweicloud_nuget | |||
RUN dotnet restore "TelpoPush.Position.Worker/TelpoPush.Position.Worker.csproj" | |||
COPY . . | |||
WORKDIR "/src/TelpoPush.Position.Worker" | |||
FROM build AS publish | |||
RUN dotnet publish "TelpoPush.Position.Worker.csproj" -c Release -o /app/publish | |||
FROM base AS final | |||
WORKDIR /app | |||
COPY --from=publish /app/publish . | |||
#COPY pem /app/pem | |||
ENV environment=Development | |||
RUN apk add --no-cache tzdata | |||
ENV TimeZone=Asia/Shanghai | |||
ENV LANG C.UTF-8 | |||
ENV ASPNETCORE_ENVIRONMENT_LOG=Development | |||
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone | |||
ENTRYPOINT dotnet TelpoPush.Position.Worker.dll --environment=$environment |
@@ -0,0 +1,98 @@ | |||
using Dapper; | |||
using Newtonsoft.Json; | |||
using Newtonsoft.Json.Serialization; | |||
using Serilog; | |||
using TelpoDataService.Util.Clients; | |||
using TelpoPush.Position.Worker; | |||
#region 日志 | |||
//using Serilog.Events; | |||
//using Serilog; | |||
//using Microsoft.AspNetCore.Builder; | |||
//Log.Logger = new LoggerConfiguration() | |||
//#if DEBUG | |||
// .MinimumLevel.Debug() | |||
//#else | |||
// .MinimumLevel.Information() | |||
//#endif | |||
// .MinimumLevel.Override("Microsoft", LogEventLevel.Information) | |||
// .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) | |||
// .Enrich.FromLogContext() | |||
// //.Filter.ByExcluding(c => c.Properties.Any(p => p.Value.ToString().Contains("Microsoft")))//过滤 | |||
// .WriteTo.Async(c => c.File("/var/telpo_pushthird_ssl2/logs/infos/info.log", | |||
// restrictedToMinimumLevel: LogEventLevel.Information, | |||
// rollingInterval: RollingInterval.Day,//滚动策略(天) | |||
// //fileSizeLimitBytes: 20971520, //设置单个文件大小为3M 默认1G | |||
// rollOnFileSizeLimit: true, //超过文件大小后创建新的 | |||
// retainedFileCountLimit: 7,//默认31,意思就是只保留最近的31个日志文件" | |||
// outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff}[{Level:u3}] [Thread-{ThreadId}] [{SourceContext:l}] {Message:lj}{NewLine}{Exception}" | |||
// ) | |||
// ) | |||
// .WriteTo.Async(c => c.File("/var/telpo_pushthird_ssl2/logs/errors/errors.log", | |||
// restrictedToMinimumLevel: LogEventLevel.Error, | |||
// rollingInterval: RollingInterval.Day, | |||
// rollOnFileSizeLimit: true, | |||
// retainedFileCountLimit: 7, | |||
// outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff }[{Level:u3}] [Thread-{ThreadId}] [{SourceContext:l}] {Message:lj}{NewLine}{Exception}" | |||
// ) | |||
// ) | |||
// .WriteTo.Async(c => c.Console()) | |||
// .CreateLogger(); | |||
//选择配置文件appsetting.json | |||
var configuration = new ConfigurationBuilder() | |||
.SetBasePath(Directory.GetCurrentDirectory()) | |||
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) | |||
.Build(); | |||
Log.Logger = new LoggerConfiguration() | |||
.ReadFrom.Configuration(configuration) | |||
.Enrich.WithThreadId() | |||
.CreateLogger(); | |||
#endregion | |||
try | |||
{ | |||
Log.Information("Starting up"); | |||
var builder = Host.CreateApplicationBuilder(args); | |||
var config = builder.Configuration; | |||
//builder.Services.Configure<PositionConfig>(config.GetSection("PositionConfig")); | |||
//builder.Services.Configure<ServiceConfig>(config.GetSection("ServiceConfig")); | |||
//builder.Services.Configure<RedisConfig>(config.GetSection("Redis")); | |||
JsonSerializerSettings setting = new JsonSerializerSettings(); | |||
JsonConvert.DefaultSettings = () => | |||
{ | |||
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; | |||
setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); | |||
return setting; | |||
}; | |||
builder.Services.AddTelpoDataServices(opt => | |||
{ | |||
opt.TelpoDataUrl = config["ServiceConfig:TelpoDataUrl"]; | |||
}); | |||
builder.Services.AddSerilog(); | |||
builder.Services.AddHttpClient(); | |||
//builder.Services.AddTransient<HttpHelperAsync>(); | |||
//builder.Services.AddSingleton<SqlMapper>(); | |||
//builder.Services.AddSingleton<RedisUtil>(); | |||
//builder.Services.AddSingleton<IKafkaService, KafkaService>(); | |||
//builder.Services.AddSingleton<KafkaSubscribe>(); | |||
//builder.Services.AddSingleton<MessageProducer>(); | |||
//builder.Services.AddSingleton<MqProcessMessage>(); | |||
//builder.Services.AddSingleton<PositionProcess>(); | |||
builder.Services.AddHostedService<Worker>(); | |||
var host = builder.Build(); | |||
host.Run(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
Log.Fatal(ex, "Application start-up failed"); | |||
} | |||
finally | |||
{ | |||
Log.CloseAndFlush(); | |||
} |
@@ -0,0 +1,15 @@ | |||
{ | |||
"profiles": { | |||
"TelpoPush.Position.Worker": { | |||
"commandName": "Project", | |||
"environmentVariables": { | |||
"DOTNET_ENVIRONMENT": "Development" | |||
}, | |||
"dotnetRunMessages": true | |||
}, | |||
"Container (Dockerfile)": { | |||
"commandName": "Docker" | |||
} | |||
}, | |||
"$schema": "http://json.schemastore.org/launchsettings.json" | |||
} |
@@ -0,0 +1,26 @@ | |||
<Project Sdk="Microsoft.NET.Sdk.Worker"> | |||
<PropertyGroup> | |||
<TargetFramework>net8.0</TargetFramework> | |||
<Nullable>enable</Nullable> | |||
<ImplicitUsings>enable</ImplicitUsings> | |||
<UserSecretsId>dotnet-TelpoPush.Position.Worker-211b7ba5-b122-4108-a72e-d3ee6ae6a82d</UserSecretsId> | |||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Confluent.Kafka" Version="2.4.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /> | |||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" /> | |||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" /> | |||
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" /> | |||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> | |||
<PackageReference Include="Serilog.Sinks.Exceptionless" Version="4.0.0" /> | |||
<PackageReference Include="CSRedisCore" Version="3.8.803" /> | |||
<PackageReference Include="Dapper" Version="2.1.35" /> | |||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> | |||
<PackageReference Include="MySql.Data" Version="8.4.0" /> | |||
<PackageReference Include="TelpoDataService.Util" Version="1.6.9.28-beta1" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,24 @@ | |||
namespace TelpoPush.Position.Worker | |||
{ | |||
public class Worker : BackgroundService | |||
{ | |||
private readonly ILogger<Worker> _logger; | |||
public Worker(ILogger<Worker> logger) | |||
{ | |||
_logger = logger; | |||
} | |||
protected override async Task ExecuteAsync(CancellationToken stoppingToken) | |||
{ | |||
while (!stoppingToken.IsCancellationRequested) | |||
{ | |||
if (_logger.IsEnabled(LogLevel.Information)) | |||
{ | |||
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); | |||
} | |||
await Task.Delay(1000, stoppingToken); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,40 @@ | |||
{ | |||
"ConnectionStrings": { | |||
"DB_Connection_String": "server=139.224.254.18;port=3305;database=gps_card;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_common_ConnString": "server=139.224.254.18;port=3305;database=telpo_common;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_Healthy_ConnString": "server=139.224.254.18;port=3305;database=telpo_healthy;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none" | |||
//"DB_Connection_String": "server=rm-uf6j529mu0v6g0btpco.mysql.rds.aliyuncs.com;port=3305;database=gps_card;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
//"Telpo_common_ConnString": "server=rm-uf6j529mu0v6g0btpco.mysql.rds.aliyuncs.com;port=3305;database=telpo_common;uid=linwl;pwd=linwl#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none" | |||
}, | |||
"PositionConfig": { | |||
"CoreServiceApiUrl": "http://localhost:8094/api/v1", | |||
"GpsWebApiUrl": "http://id.ssjlai.com/webapi", | |||
//-------融智联 | |||
"RzlManufactorId": "2cae99d6-0475-42fe-9fa7-ca27e03077de", | |||
"RzlPushTemperatureUrl": "http://121.40.140.74:8071/api/CollectData/TemperatureTranspond", | |||
"RzlPushTranspondUrl": "http://121.40.140.74:8071/api/CollectData/ThirdPushTranspond", | |||
"RzlVoiceCallback": "http://121.40.140.74/GspCardStand/api/Voice/VoiceCallback" | |||
}, | |||
"ServiceConfig": { | |||
"TelpoDataUrl": "http://id.ssjlai.com/data", | |||
"KafkaBootstrapServers": "47.116.67.214:9092", // "172.19.42.53:9092", | |||
"KafkaTopics": [ "topic.push.position" ], | |||
"KafkaGroupId": "telpo.position", | |||
"CacheDurationSeconds": 1200, //20分钟 | |||
"CacheDurationSeconds10": 600 //10分钟 | |||
}, | |||
"Redis": { | |||
//"Server": "139.224.254.18:8090", | |||
"Server": "47.116.142.20:8090", | |||
"Password": "telpo#1234", | |||
"DefaultDatabase": 7, | |||
"Poolsize": 150, | |||
"Preheat": 50, | |||
"Prefix": "_Third_", | |||
"ConnectTimeout": 5000, | |||
"IdleTimeout": 20000 | |||
}, | |||
"Environment": "dev" | |||
} |
@@ -0,0 +1,77 @@ | |||
{ | |||
"Logging": { | |||
"LogLevel": { | |||
"Default": "Information", | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"System.Net.Http.HttpClient": "Warning" | |||
} | |||
}, | |||
"Serilog": { | |||
"Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Async", "Serilog.Sinks.Console", "Serilog.Sinks.Exceptionless" ], | |||
"MinimumLevel": { | |||
"Default": "Verbose", | |||
"Override": { | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"System.Net.Http.HttpClient": "Warning" | |||
} | |||
}, | |||
"WriteTo:Information": { | |||
"Name": "Async", | |||
"Args": { | |||
"Configure": [ | |||
{ | |||
"Name": "File", | |||
"Args": { | |||
"RestrictedToMinimumLevel": "Information", | |||
"RollingInterval": "Day", | |||
"RollOnFileSizeLimit": "true", | |||
"OutputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss }[{Level:u3}] [Thread-{ThreadId}] [{SourceContext:l}] {Message:lj}{NewLine}{Exception}", | |||
"Path": "/var/telpo_pushposition/logs/infos/info.log", | |||
"RetainedFileCountLimit": 7 // "--设置日志文件个数最大值,默认31,意思就是只保留最近的31个日志文件", "等于null时永远保留文件": null | |||
// "FileSizeLimitBytes": 20971520, //设置单个文件大小为3M 默认1G | |||
// "RollOnFileSizeLimit": true //超过文件大小后创建新的 | |||
} | |||
} | |||
] | |||
} | |||
}, | |||
"WriteTo:Error": { | |||
"Name": "Async", | |||
"Args": { | |||
"Configure": [ | |||
{ | |||
"Name": "File", | |||
"Args": { | |||
"RestrictedToMinimumLevel": "Error", | |||
"RollingInterval": "Day", | |||
"RollOnFileSizeLimit": "true", | |||
"OutputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss }[{Level:u3}] [Thread-{ThreadId}][{SourceContext:l}] {Message:lj}{NewLine}{Exception}", | |||
"Path": "/var/telpo_pushposition/logs/errors/error.log", | |||
"RetainedFileCountLimit": 7 // "--设置日志文件个数最大值,默认31,意思就是只保留最近的31个日志文件", "等于null时永远保留文件": null | |||
// "FileSizeLimitBytes": 20971520, //设置单个文件大小为3M 默认1G | |||
// "RollOnFileSizeLimit": true //超过文件大小后创建新的 | |||
} | |||
} | |||
] | |||
} | |||
}, | |||
"WriteTo:Console": { | |||
"Name": "Console", | |||
"Args": { | |||
"restrictedToMinimumLevel": "Verbose", | |||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss }[{Level:u3}] [Thread-{ThreadId}] [{SourceContext:l}] {Message:lj}{NewLine}{Exception}", | |||
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console" | |||
} | |||
}, | |||
"WriteTo:Exceptionless": { | |||
"Name": "Exceptionless", | |||
"Args": { | |||
"serverUrl": "http://8.134.157.154:5000", | |||
"apiKey": "f2I0sng4BBQS9IAsbdBK1W71oOYGPpsC66s7pzJu" | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,36 @@ | |||
{ | |||
"ConnectionStrings": { | |||
"DB_Connection_String": "server=rm-uf6j529mu0v6g0btp.mysql.rds.aliyuncs.com;port=3305;database=gps_card;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_common_ConnString": "server=rm-uf6j529mu0v6g0btp.mysql.rds.aliyuncs.com;port=3305;database=telpo_common;uid=linwl;pwd=linwl#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_Healthy_ConnString": "server=rm-uf6j529mu0v6g0btp.mysql.rds.aliyuncs.com;port=3305;database=telpo_healthy;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none" | |||
}, | |||
"PositionConfig": { | |||
"CoreServiceApiUrl": "http://ai.ssjlai.com/gateway/core/api/v1", | |||
"GpsWebApiUrl": "https://ai.ssjlai.com/webapi", | |||
//-------融智联 | |||
"RzlManufactorId": "2cae99d6-0475-42fe-9fa7-ca27e03077de", | |||
"RzlPushTemperatureUrl": "http://121.40.140.74:8071/api/CollectData/TemperatureTranspond", | |||
"RzlPushTranspondUrl": "http://121.40.140.74:8071/api/CollectData/ThirdPushTranspond", | |||
"RzlVoiceCallback": "http://121.40.140.74/GspCardStand/api/Voice/VoiceCallback" | |||
}, | |||
"ServiceConfig": { | |||
"TelpoDataUrl": "https://ai.ssjlai.com/data", | |||
"KafkaBootstrapServers": "172.19.42.40:9092,172.19.42.41:9092,172.19.42.48:9092", | |||
"KafkaTopics": [ "topic.push.position" ], | |||
"KafkaGroupId": "telpo.position", | |||
"CacheDurationSeconds": 1200, //20分钟 | |||
"CacheDurationSeconds10": 600 //10分钟 | |||
}, | |||
"Redis": { | |||
"Server": "172.19.42.40:8090", | |||
"Password": "telpo#1234", | |||
"DefaultDatabase": 7, | |||
"Poolsize": 150, | |||
"Preheat": 50, | |||
"Prefix": "_Third_", | |||
"ConnectTimeout": 5000, | |||
"IdleTimeout": 20000 | |||
}, | |||
"Environment": "production" | |||
} |
@@ -0,0 +1,39 @@ | |||
{ | |||
"ConnectionStrings": { | |||
"DB_Connection_String": "server=139.224.254.18;port=3305;database=gps_card;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_common_ConnString": "server=139.224.254.18;port=3305;database=telpo_common;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
"Telpo_Healthy_ConnString": "server=139.224.254.18;port=3305;database=telpo_healthy;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none" | |||
//"DB_Connection_String": "server=rm-uf6j529mu0v6g0btpco.mysql.rds.aliyuncs.com;port=3305;database=gps_card;uid=root;pwd=telpo#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none", | |||
//"Telpo_common_ConnString": "server=rm-uf6j529mu0v6g0btpco.mysql.rds.aliyuncs.com;port=3305;database=telpo_common;uid=linwl;pwd=linwl#1234;CharSet=utf8;MinimumPoolSize=10;MaximumPoolSize=1000;SslMode=none" | |||
}, | |||
"PositionConfig": { | |||
"CoreServiceApiUrl": "http://localhost:8094/api/v1", | |||
"GpsWebApiUrl": "http://id.ssjlai.com/webapi", | |||
//-------融智联 | |||
"RzlManufactorId": "2cae99d6-0475-42fe-9fa7-ca27e03077de", | |||
"RzlPushTemperatureUrl": "http://121.40.140.74:8071/api/CollectData/TemperatureTranspond", | |||
"RzlPushTranspondUrl": "http://121.40.140.74:8071/api/CollectData/ThirdPushTranspond", | |||
"RzlVoiceCallback": "http://121.40.140.74/GspCardStand/api/Voice/VoiceCallback" | |||
}, | |||
"ServiceConfig": { | |||
"TelpoDataUrl": "http://id.ssjlai.com/data", | |||
"KafkaBootstrapServers": "172.19.42.53:9092", // "172.19.42.53:9092", | |||
"KafkaTopics": [ "topic.push.position" ], | |||
"KafkaGroupId": "telpo.position", | |||
"CacheDurationSeconds": 1200, //20分钟 | |||
"CacheDurationSeconds10": 600 //10分钟 | |||
}, | |||
"Redis": { | |||
"Server": "172.19.42.44:8090", | |||
"Password": "telpo#1234", | |||
"DefaultDatabase": 7, | |||
"Poolsize": 150, | |||
"Preheat": 50, | |||
"Prefix": "_Third_", | |||
"ConnectTimeout": 5000, | |||
"IdleTimeout": 20000 | |||
}, | |||
"Environment": "dev" | |||
} |
@@ -0,0 +1,25 @@ | |||
| |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio Version 17 | |||
VisualStudioVersion = 17.9.34723.18 | |||
MinimumVisualStudioVersion = 10.0.40219.1 | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TelpoPush.Position.Worker", "TelpoPush.Position.Worker\TelpoPush.Position.Worker.csproj", "{7E015BBC-126F-40AA-B261-0C58ED0FE0DE}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
Release|Any CPU = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
{7E015BBC-126F-40AA-B261-0C58ED0FE0DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{7E015BBC-126F-40AA-B261-0C58ED0FE0DE}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{7E015BBC-126F-40AA-B261-0C58ED0FE0DE}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{7E015BBC-126F-40AA-B261-0C58ED0FE0DE}.Release|Any CPU.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||
SolutionGuid = {76B08062-E22A-4D9C-A1BB-6D713A3A5DEE} | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,7 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<packageSources> | |||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> | |||
<add key="company" value="http://139.224.254.18:3344" /> | |||
</packageSources> | |||
</configuration> |
@@ -0,0 +1,18 @@ | |||
#!/usr/bin/env bash | |||
image_version=$version | |||
# 删除镜像 | |||
docker rmi -f $( | |||
docker images | grep registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_position | awk '{print $3}' | |||
) | |||
# 构建telpo/mrp:$image_version镜像 | |||
docker build -f ./TelpoPush.Position.Worker/Dockerfile . -t telpo/telpo_push_position:$image_version | |||
#TODO:推送镜像到阿里仓库 | |||
echo '=================开始推送镜像=======================' | |||
docker login --username=rzl_wangjx@1111649216405698 --password=telpo.123 registry.cn-shanghai.aliyuncs.com | |||
docker tag telpo/telpo_push_position:$image_version registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_position:$image_version | |||
docker push registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_position:$image_version | |||
echo '=================推送镜像完成=======================' | |||
#删除产生的None镜像 | |||
docker rmi -f $(docker images | grep none | awk '{print $3}') | |||
# 查看镜像列表 | |||
docker images |
@@ -0,0 +1,17 @@ | |||
#!/usr/bin/env bash | |||
image_version=$version | |||
# 删除镜像 | |||
docker rmi -f $( | |||
docker images | grep 139.224.254.18:5000/telpo_push_position | awk '{print $3}' | |||
) | |||
# 构建telpo/mrp:$image_version镜像 | |||
docker build -f ./TelpoPush.Position.Worker/Dockerfile . -t telpo/telpo_push_position:$image_version | |||
#TODO:推送镜像到私有仓库 | |||
echo '=================开始推送镜像=======================' | |||
docker tag telpo/telpo_push_position:$image_version 139.224.254.18:5000/telpo_push_position:$image_version | |||
docker push 139.224.254.18:5000/telpo_push_position:$image_version | |||
echo '=================推送镜像完成=======================' | |||
#删除产生的None镜像 | |||
docker rmi -f $(docker images | grep none | awk '{print $3}') | |||
# 查看镜像列表 | |||
docker images |
@@ -0,0 +1,27 @@ | |||
#!/bin/bash | |||
environment=$1 | |||
version=$2 | |||
echo "环境变量为${environment},版本为$version!" | |||
if [[ ${environment} == 'production' ]]; then | |||
echo "开始远程构建容器" | |||
docker stop telpo_push_third_ssl || true | |||
docker rm telpo_push_third_ssl || true | |||
docker rmi -f $(docker images | grep registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_third_ssl | awk '{print $3}') | |||
docker login --username=rzl_wangjx@1111649216405698 --password=telpo.123 registry.cn-shanghai.aliyuncs.com | |||
docker pull registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_third_ssl:$version | |||
docker run -d --network=host -e environment=production -v /home/data/telpo_push_third_ssl/log:/var/telpo_pushthird_ssl/logs --restart=always --name telpo_push_third_ssl registry.cn-shanghai.aliyuncs.com/gps_card/telpo_push_third_ssl:$version; | |||
#删除产生的None镜像 | |||
docker rmi -f $(docker images | grep none | awk '{print $3}') | |||
docker ps -a | |||
elif [[ ${environment} == 'test' ]]; then | |||
echo "开始在测试环境远程构建容器" | |||
docker stop telpo_push_third_ssl || true | |||
docker rm telpo_push_third_ssl || true | |||
docker rmi -f $(docker images | grep 139.224.254.18:5000/telpo_push_third_ssl | awk '{print $3}') | |||
docker pull 139.224.254.18:5000/telpo_push_third_ssl:$version | |||
docker run -d --network=host -e environment=${environment} -v /home/data/telpo_push_third_ssl/log:/var/telpo_pushthird_ssl/logs --restart=always --name telpo_push_third_ssl 139.224.254.18:5000/telpo_push_third_ssl:$version; | |||
#删除产生的None镜像 | |||
docker rmi -f $(docker images | grep none | awk '{print $3}') | |||
docker ps -a | |||
fi |