abpframework / abp

Open Source Web Application Framework for ASP.NET Core. Offers an opinionated architecture to build enterprise software solutions with best practices on top of the .NET and the ASP.NET Core platforms. Provides the fundamental infrastructure, production-ready startup templates, application modules, UI themes, tooling, guides and documentation.
https://abp.io
GNU Lesser General Public License v3.0
12.41k stars 3.34k forks source link

How I access correlationId within BackgroundJob? #19717

Open CaglarMacha opened 1 month ago

CaglarMacha commented 1 month ago

Documentation

Please check the official documentation before asking questions: https://docs.abp.io

GitHub Issues

GitHub issues are for bug reports, feature requests, and other discussions about the framework.

If you're creating a bug/problem report, please include the followings:

Please write in English.

Stack Overflow

Please use Stack Overflow for your questions about using the framework, templates, and samples:

https://stackoverflow.com/questions/tagged/abp

Use abp tag in your questions.

ABP Framework version = 5.3.3 Db Provider = EF Core

We use background jobs within some of our AppService or manager class. However, we want to access the correlationId information from Audit logs within these jobs. How can I access correlationId within jobs?. We don't want to pass the correlationId information as a parameter.

maliming commented 1 month ago

hi

We don't want to pass the correlationId information as a parameter.

It seems this is the only way to get correlationid in BackgroundJob.

CaglarMacha commented 1 month ago

hi

We don't want to pass the correlationId information as a parameter.

It seems this is the only way to get correlationid in BackgroundJob.

Thank you so much your answer. Maybe I can create an interface or class to access the correlationId information, and then have my job classes derive from this interface so that they can automatically set the correlationId information. I thought this could be one way, do you have any other recommendations? What's the best practice according to you?

maliming commented 1 month ago

hi

The correlationId is related to HttpContext, so it can't be used in a BackgroundJob.

https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AbpCorrelationIdMiddleware.cs#L24-L44