I can see the same kind of behaviour post-deployment as well. Should I share the logs for same as well ?
hi
Please share the
logs.txt
to liming.ma@volosoft.comThanks
Done !!!
Hi,
Login to the platform taking more time than expected
As you see in the above image the application-configuration
alone is taking almost 2 sec here.
Please advise on how we reduce this time.
I have a requirement where I have create few users using SQL scripts. For these users I need to share URL via email to reset password.
I found this method as per my use case in AccountAppService
public virtual async Task ResetPasswordAsync(ResetPasswordDto input)
{
await IdentityOptions.SetAsync();
var user = await UserManager.GetByIdAsync(input.UserId);
(await UserManager.ResetPasswordAsync(user, input.ResetToken, input.Password)).CheckErrors();
await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext
{
Identity = IdentitySecurityLogIdentityConsts.Identity,
Action = IdentitySecurityLogActionConsts.ChangePassword
});
}
I need to know what do I pass into ResetToken ? And how to generate this Reset Token ?
Hi maliming
BackgroundJobsDbContext
always creates and maintains jobs on the Host side.
How does the job know for which tenant it needs to be executed?
Can you prepare a template project to reproduce? liming.ma@volosoft.com
The project which I am working on is very complicated and not easy to mimic. Please let me know if you can connect over the call to have a look yourself.
The requirement is tenant-specific. Background job needs to be executed for only specific tenants. Not for all tenants, And that too on the trigger of some action.
And why is the IsAbandoned
field set to false? And I am not sure why the errors were not logged.
Hi,
This is my BackgroundJob
namespace SCV.Litmus.InvoiceManagement.BackgroundJobs
{
public class QuoteJob : AsyncBackgroundJob<CreateQuoteInputDto>, ITransientDependency
{
private readonly IQuoteAppService _quoteAppService;
public QuoteJob(IQuoteAppService quoteAppService)
{
_quoteAppService = quoteAppService;
}
public override async Task ExecuteAsync(CreateQuoteInputDto input)
{
Log.Information($"QuoteJob.ExecuteAsync started...");
await _quoteAppService.CreateQuoteAsync(input);
Log.Information($"QuoteJob.ExecuteAsync ended...");
}
}
}
And this is the call from an AppService
await _backgroundJobManager.EnqueueAsync(quoteInput);
Logs in the ExecuteAsync()
were not found in Cloudwatch.
Also, there were no warning/error logs found post executing this code
In the AbpBackgroundJobs table, There were no entries in the Tenant_Admin tables But there were 2 entries in the Host_Admin tables PFB screenshot below
Job Arg :
{
"financeAmount": 478943.95,
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"userId": "fd57be54-05ad-7168-cfb5-39f6066901cf",
"invoices": [
{
"invoiceId": "3a0b3d47-325c-15b0-a702-907606d81e42",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"description": "",
"isActive": true,
"id": 1340186
},
{
"invoiceId": "3a0b3d47-3438-04c2-0395-ef2c7e309305",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"description": "",
"isActive": true,
"id": 1340187
},
{
"invoiceId": "3a0b3d47-4fbd-2a6e-63df-b0982c6ca342",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"description": "",
"isActive": true,
"id": 1340188
},
{
"invoiceId": "3a0b3824-948a-0366-7881-670d0f2cd185",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"description": "",
"isActive": true,
"id": 1340189
},
{
"invoiceId": "3a0b32fc-b6eb-9419-b543-aeaf3dd18c9b",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"businessEntityId": "fb24fde8-c0a5-4e38-8f4f-27bc17868497",
"description": "",
"isActive": true,
"id": 1340190
}
],
"creditNotes": [],
"invoiceList": [
{
"tenantId": "d1be844b-d3a2-031a-f036-39f5d4380239",
"invoiceNumber": "8212395854",
"invoiceAdditionalReference": "0700162451",
"invoiceUniqueId": "HK08_1000036946_2023_0700162451",
"supplierCode": "1000036946",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"companyCode": "HK08",
"currencyId": 1,
"description": "Debit Memo",
"amount": 39912,
"entryDate": "2023-05-17T00:00:00Z",
"issueDate": "2023-05-10T00:00:00Z",
"dueDate": "2023-08-08T00:00:00Z",
"payDate": "0001-01-01T00:00:00Z",
"baseLineDate": "2023-05-10T00:00:00Z",
"maturityDate": "2023-11-03T00:00:00Z",
"erpPostedDate": "0001-01-01T00:00:00Z",
"sellerOrganizationId": null,
"buyerOrganizationId": null,
"netAmount": 0,
"eccInvoiceNumber": "9953781495",
"fiscalYear": 2023,
"statusId": 1,
"subStatusId": 0,
"isActive": true,
"adjustedAmount": 0,
"isAdjusted": false,
"amountLeftForAdjustment": 39912,
"discountDate": "0001-01-01T00:00:00Z",
"originalDueDate": "0001-01-01T00:00:00Z",
"financingBankBranchId": "00000000-0000-0000-0000-000000000000",
"businessEntityId": "00000000-0000-0000-0000-000000000000",
"bankReference1": null,
"financeTenor": 129,
"supplierEntity": "",
"isDeleted": false,
"deleterId": null,
"deletionTime": null,
"lastModificationTime": null,
"lastModifierId": null,
"creationTime": "2023-05-17T19:05:27.397122Z",
"creatorId": "39fef723-0723-21e3-2564-1aee5a886074",
"id": "3a0b3d47-325c-15b0-a702-907606d81e42"
},
{
"tenantId": "d1be844b-d3a2-031a-f036-39f5d4380239",
"invoiceNumber": "8212395853",
"invoiceAdditionalReference": "0700162449",
"invoiceUniqueId": "HK08_1000036946_2023_0700162449",
"supplierCode": "1000036946",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"companyCode": "HK08",
"currencyId": 1,
"description": "Debit Memo",
"amount": 39912,
"entryDate": "2023-05-17T00:00:00Z",
"issueDate": "2023-05-10T00:00:00Z",
"dueDate": "2023-08-08T00:00:00Z",
"payDate": "0001-01-01T00:00:00Z",
"baseLineDate": "2023-05-10T00:00:00Z",
"maturityDate": "2023-11-03T00:00:00Z",
"erpPostedDate": "0001-01-01T00:00:00Z",
"sellerOrganizationId": null,
"buyerOrganizationId": null,
"netAmount": 0,
"eccInvoiceNumber": "9953781494",
"fiscalYear": 2023,
"statusId": 1,
"subStatusId": 0,
"isActive": true,
"adjustedAmount": 0,
"isAdjusted": false,
"amountLeftForAdjustment": 39912,
"discountDate": "0001-01-01T00:00:00Z",
"originalDueDate": "0001-01-01T00:00:00Z",
"financingBankBranchId": "00000000-0000-0000-0000-000000000000",
"businessEntityId": "00000000-0000-0000-0000-000000000000",
"bankReference1": null,
"financeTenor": 129,
"supplierEntity": "",
"isDeleted": false,
"deleterId": null,
"deletionTime": null,
"lastModificationTime": null,
"lastModifierId": null,
"creationTime": "2023-05-17T19:05:27.872368Z",
"creatorId": "39fef723-0723-21e3-2564-1aee5a886074",
"id": "3a0b3d47-3438-04c2-0395-ef2c7e309305"
},
{
"tenantId": "d1be844b-d3a2-031a-f036-39f5d4380239",
"invoiceNumber": "8212395855",
"invoiceAdditionalReference": "0700162452",
"invoiceUniqueId": "HK08_1000036946_2023_0700162452",
"supplierCode": "1000036946",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"companyCode": "HK08",
"currencyId": 1,
"description": "Debit Memo",
"amount": 79823.99,
"entryDate": "2023-05-17T00:00:00Z",
"issueDate": "2023-05-10T00:00:00Z",
"dueDate": "2023-08-08T00:00:00Z",
"payDate": "0001-01-01T00:00:00Z",
"baseLineDate": "2023-05-10T00:00:00Z",
"maturityDate": "2023-11-03T00:00:00Z",
"erpPostedDate": "0001-01-01T00:00:00Z",
"sellerOrganizationId": null,
"buyerOrganizationId": null,
"netAmount": 0,
"eccInvoiceNumber": "9953781496",
"fiscalYear": 2023,
"statusId": 1,
"subStatusId": 0,
"isActive": true,
"adjustedAmount": 0,
"isAdjusted": false,
"amountLeftForAdjustment": 79823.99,
"discountDate": "0001-01-01T00:00:00Z",
"originalDueDate": "0001-01-01T00:00:00Z",
"financingBankBranchId": "00000000-0000-0000-0000-000000000000",
"businessEntityId": "00000000-0000-0000-0000-000000000000",
"bankReference1": null,
"financeTenor": 129,
"supplierEntity": "",
"isDeleted": false,
"deleterId": null,
"deletionTime": null,
"lastModificationTime": null,
"lastModifierId": null,
"creationTime": "2023-05-17T19:05:34.917995Z",
"creatorId": "39fef723-0723-21e3-2564-1aee5a886074",
"id": "3a0b3d47-4fbd-2a6e-63df-b0982c6ca342"
},
{
"tenantId": "d1be844b-d3a2-031a-f036-39f5d4380239",
"invoiceNumber": "8212390700",
"invoiceAdditionalReference": "0700152368",
"invoiceUniqueId": "HK08_1000036946_2023_0700152368",
"supplierCode": "1000036946",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"companyCode": "HK08",
"currencyId": 1,
"description": "Debit Memo",
"amount": 239471.97,
"entryDate": "2023-05-16T00:00:00Z",
"issueDate": "2023-05-09T00:00:00Z",
"dueDate": "2023-08-07T00:00:00Z",
"payDate": "0001-01-01T00:00:00Z",
"baseLineDate": "2023-05-09T00:00:00Z",
"maturityDate": "2023-11-03T00:00:00Z",
"erpPostedDate": "0001-01-01T00:00:00Z",
"sellerOrganizationId": null,
"buyerOrganizationId": null,
"netAmount": 0,
"eccInvoiceNumber": "9953767426",
"fiscalYear": 2023,
"statusId": 1,
"subStatusId": 0,
"isActive": true,
"adjustedAmount": 0,
"isAdjusted": false,
"amountLeftForAdjustment": 239471.97,
"discountDate": "0001-01-01T00:00:00Z",
"originalDueDate": "0001-01-01T00:00:00Z",
"financingBankBranchId": "00000000-0000-0000-0000-000000000000",
"businessEntityId": "00000000-0000-0000-0000-000000000000",
"bankReference1": null,
"financeTenor": 129,
"supplierEntity": "",
"isDeleted": false,
"deleterId": null,
"deletionTime": null,
"lastModificationTime": null,
"lastModifierId": null,
"creationTime": "2023-05-16T19:09:32.69207Z",
"creatorId": "39fef723-0723-21e3-2564-1aee5a886074",
"id": "3a0b3824-948a-0366-7881-670d0f2cd185"
},
{
"tenantId": "d1be844b-d3a2-031a-f036-39f5d4380239",
"invoiceNumber": "8212384799",
"invoiceAdditionalReference": "0700146161",
"invoiceUniqueId": "HK08_1000036946_2023_0700146161",
"supplierCode": "1000036946",
"supplierId": "19a477b0-38e1-45ab-939b-b66812ea6105",
"companyCode": "HK08",
"currencyId": 1,
"description": "Debit Memo",
"amount": 79823.99,
"entryDate": "2023-05-15T00:00:00Z",
"issueDate": "2023-05-06T00:00:00Z",
"dueDate": "2023-08-06T00:00:00Z",
"payDate": "0001-01-01T00:00:00Z",
"baseLineDate": "2023-05-08T00:00:00Z",
"maturityDate": "2023-11-03T00:00:00Z",
"erpPostedDate": "0001-01-01T00:00:00Z",
"sellerOrganizationId": null,
"buyerOrganizationId": null,
"netAmount": 0,
"eccInvoiceNumber": "9953740370",
"fiscalYear": 2023,
"statusId": 1,
"subStatusId": 0,
"isActive": true,
"adjustedAmount": 0,
"isAdjusted": false,
"amountLeftForAdjustment": 79823.99,
"discountDate": "0001-01-01T00:00:00Z",
"originalDueDate": "0001-01-01T00:00:00Z",
"financingBankBranchId": "00000000-0000-0000-0000-000000000000",
"businessEntityId": "00000000-0000-0000-0000-000000000000",
"bankReference1": null,
"financeTenor": 129,
"supplierEntity": "",
"isDeleted": false,
"deleterId": null,
"deletionTime": null,
"lastModificationTime": null,
"lastModifierId": null,
"creationTime": "2023-05-15T19:07:53.971908Z",
"creatorId": "39fef723-0723-21e3-2564-1aee5a886074",
"id": "3a0b32fc-b6eb-9419-b543-aeaf3dd18c9b"
}
],
"creditNotesList": [],
"isCreatQuote": true,
"isCallFromAutoSubmissionJob": false
}
The job was for a tenant in the platform, how come this entry was stored in Host_Admin database and not in Tenant_Admin database ?
Few other questions
But it doesn't work post-deployment.
hi
Did you get any error logs? You can use
ILogger
to output some logs.
EnqueueAsync
will write a record to the database and return.
Hi, Thank you for your patience.
No there were no errors. Which table do we need to look for?
Hi,
I followed the document https://docs.abp.io/en/abp/4.3/Background-Jobs.
Below is the kind of code sample for your analysis
public async Task<something> MainMethod()
{
// some logic
//
//
//
// some logic
//Here is the code I wanted to run in background
await _backgroundJobManager.EnqueueAsync(
new SomeDto
{
EmailAddress = emailAddress,
Subject = "You've successfully registered!",
Body = "..."
}
);
//Its is inserting 45k records into database.
//I want to run this in background but don't want to wait for this to complete
//Post the above job I am publishing event to notify client about the status.
//return something;
}
public class SomeJob : AsyncBackgroundJob<SomeDto>, ITransientDependency
{
private readonly ISomeInterface _someInterface;
public SomeJob(ISomeInterface someInterface)
{
_someInterface= someInterface;
}
public override async Task SomeMethod(SomeDto args)
{
await _someInterface.SomeOtherMethod(
args.EmailAddress,
args.Subject,
args.Body
);
}
}
The above code works fine on localhost But it doesn't work post-deployment.
There are logs in both methods.
MainMethod()
logs are logged in CloudWatch.
But there is no single log from SomeMethod()
logged in CloudWatch.
I am assuming that this method was not even executed.
I want to know the reason why? How can it get executed on localhost and not on the server?
Also, you got an idea of what I am trying to do. Please suggest a way where I can insert those records in the background without having the request to wait for that code to get executed. The reason is we are using AWS API Gateway, which has a 30-sec limitation. Due to this long insert process, the request gives a timeout error on the angular side.
Alternatively, I tried using https://docs.abp.io/en/abp/4.3/Local-Event-Bus, but this is not executing asynchronously in the background. Also, I tried using https://docs.abp.io/en/abp/4.3/Distributed-Event-Bus, this gets called asynchronously, but here I am stuck in some rabbitMQ object reference null issue.
Please advise !!!
Hi,
My project have total 7 micro-services out of which 1 is dedicated for SignalR Post deployment other 6 are working fine, but the one which is dedicated for SignalR is giving CORS error. All the appsettings and Host Module logic looks fine as same logic is working for other 6 services. There are no logs in Cloud Watch to check for. Not getting any more details, only this URL in network tab : https://xxx.dev.xxxxx.com/eventsync/hubs/notifications/negotiate?negotiateVersion=1 PFA images for your reference
We have a release planned and it is having very high priority. Please let me know if someone from support team is available for discussion.
@gterdem
Our solution structure is bit different as compared to your microservice template. This application was create way before abp.io Micro service template came into picture. We connected with abp.io at times of creation of our application, it was created manually by guidance of abp.io support team only.
Can we please connect and have a look yourself as giving you sample source is not possible and we cannot provide you original source code as well.