> dotnet new console --name TaskManager.Service dotnet new webapi --name TaskManager.Apicd TaskManager.Api
dotnet add package Cronus
cd ../TaskManager.Service
dotnet add package Cronus
dotnet add package Cronus.Transport.RabbitMQ
dotnet add package Cronus.Persistence.Cassandra
dotnet add package Cronus.Serialization.NewtonsoftJson
dotnet add package Microsoft.Extensions.Hosting{
"Cronus": {
"BoundedContext": "taskmanager",
"Tenants": [ "tenant" ],
"Transport": {
"RabbitMQ": {
"Server": "127.0.0.1",
"VHost": "taskmanager"
},
"PublicRabbitMQ": [
{
"Server": "127.0.0.1",
"VHost": "unicom-public",
"FederatedExchange": {
"UpstreamUri": "guest:guest@localhost:5672",
"VHost": "unicom-public",
"UseSsl": false,
"MaxHops": 1
}
}
]
},
"Persistence": {
"Cassandra": {
"ConnectionString": "Contact Points=127.0.0.1;Port=9042;Default Keyspace=taskmanager_es"
}
},
"Projections": {
"Cassandra": {
"ConnectionString": "Contact Points=127.0.0.1;Port=9042;Default Keyspace=taskmanager_projections"
}
},
"Cluster": {
"Consul": {
"Address": "127.0.0.1"
}
},
"AtomicAction": {
"Redis": {
"ConnectionString": "127.0.0.1:6379"
}
}
}
}using Cronus11Service;
using Elders.Cronus;
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
services.AddCronus(hostContext.Configuration);
})
.UseDefaultServiceProvider((context, options) =>
{
options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
options.ValidateScopes = false;
options.ValidateOnBuild = false;
})
.Build();
host.Run();builder.Services.AddCronus(builder.Configuration);
builder.Host.UseDefaultServiceProvider((context, options) =>
{
options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
options.ValidateScopes = false;
options.ValidateOnBuild = false;
}
);
....
app.UseCronusAspNetCore();
