I have microservices start up template with auth server separated angular UI. I have my microservices , gateways and UI application running in staging env each a separate docker container. Now i want to add background jobs my solution. specifically job to get rabbitmq message and execute the task. i'm not sure what's the best practice to add background job in microservices solution. What i'm looking for is how to structure the background jobs project into my microservices solution to host all job under a docker container. shall i create another microservice or create a modular project like share folder we have. so i can add jobs folder to existing folder structure and under that create a new project. if i have to create jobs folder and add project under it what type of project shall i create to containerize it for example consoleapp or anyother. i have gone through below URL already. https://docs.abp.io/en/abp/latest/Background-Jobs#introduction https://docs.abp.io/en/abp/latest/Background-Jobs-RabbitMq
Provide us with the following info:
ABP Framework version: v7.3.2
UI Type: Angular
Database System: EF Core ( MySQL)
Tiered (for MVC) or Auth Server Separated (for Angular): Auth server separated angular
Exception message and full stack trace: wrong ocelot file used
Steps to reproduce the issue: im trying to create a separated ocelot file for QA environment as "ocelot.QA.json" and reference it in program.cs file as below. but after deploying the docker in QA environment it still uses ocelot.json file only. im setting the environment variable while running the docker with "-e ASPNETCORE_ENVIRONMENT='QA'" parameter.
builder.Host .AddAppSettingsSecretsJson() //.AddOcelotJson(path:AppOcelotJsonPath)//Adding this change to pick up the ocelot file bases on the environment eg - QA,PROD etc. //.AddOcelotJson() .UseAutofac() .UseSerilog();
if (!builder.Environment.IsDevelopment()) {
//Console.WriteLine(builder.Environment.EnvironmentName);
AppOcelotJsonPath = $"ocelot.{builder.Environment.EnvironmentName}.json"; }
builder.Configuration.SetBasePath(builder.Environment.ContentRootPath).AddJsonFile(AppOcelotJsonPath, optional: false, reloadOnChange: true);
builder.Host.AddOcelotJson(path:AppOcelotJsonPath);
await builder.AddApplicationAsync<healthWebGatewayModule>();
var app = builder.Build();
In the article , https://docs.abp.io/en/abp/latest/UI/Angular/Config-State-Service it says to set the config state service call this.abpApplicationConfigurationService.get().subscribe(config => { this.config.setState(config); }) while trying the above code inside constructor it is expecting one argumet in the get function. please provide what info and how to pass.
2.<GetOrAdd>b__0(TKey k) at System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func2 valueFactory) at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](ConcurrentDictionary
2 dictionary, TKey key, Func1 factory) at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleCache.GetOrAdd(String bundleName, Func
1 factory)
at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetBundleFilesAsync(BundleConfigurationCollection bundles, String bundleName, IBundler bundler)
at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetStyleBundleFilesAsync(String bundleName)
at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperStyleService.GetBundleFilesAsync(String bundleName)
at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperResourceService.ProcessAsync(ViewContext viewContext, TagHelper tagHelper, TagHelperContext context, TagHelperOutput output, List1 bundleItems, String bundleName) at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpBundleTagHelperService
2.ProcessAsync(TagHelperContext context, TagHelperOutput output)
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
at w6YsFlvOHaFfPHLpKh2.CC4i64vWPayVGeedJmS.<>c__DisplayClas