public async Task GetAllCompanyTeachersAsync(string companyId, int skip, int take)
{
var response = await _teacherRequest.GetResponse(new GetAllCompanyTeacherDataRequest
{
CompanyId = companyId,
PageIndex = skip,
PageSize = take
});
var teachers = response.Message.Items
.Select(teacher => new CompanyTeacherDetailDto
{
Name = teacher.Name,
Surname = teacher.Surname,
Email = teacher.Email,
Phone = teacher.Phone
})
.ToList();
return new PaginatedResponse(teachers, response.Message.TotalCount);
}
< /code>
Oben ist es meine Methode, Firmenlehrer zu erhalten. Und unten ist der Verbraucher, den ich im obigen Code verwendet habe: < /p>
public async Task Consume(ConsumeContext context)
{
var companyId = Guid.Parse(context.Message.CompanyId);
var query = _context.CompanyEmployees
.Where(ce => ce.CompanyId == companyId && ce.InviteStatus == InviteStatus.Accept);
var total = await query.CountAsync();
bool hasPaging = context.Message.PageIndex.HasValue && context.Message.PageSize.HasValue;
if (hasPaging)
{
query = query
.Skip(context.Message.PageIndex!.Value * context.Message.PageSize!.Value)
.Take(context.Message.PageSize.Value);
}
var teacherIds = await query
.Select(ce => ce.EmployeeId)
.Distinct()
.ToListAsync();
var usersResponse = await _request.GetResponse(
new GetUsersInformationFromCompanyRequest { UserIds = teacherIds }
);
var teachers = usersResponse.Message.Users
.Select(user => new GetAllCompanyTeacherDataResponse
{
Name = user.FirstName,
Surname = user.LastName,
Email = user.Email,
Phone = user.PhoneNumber
})
.ToList();
if (hasPaging)
{
await context.RespondAsync(new PaginatedResponse(teachers, total));
}
else
{
await context.RespondAsync(teachers);
}
}
< /code>
Ich habe eine Anforderung mit Sprist 5 -mal gesendet. 4 -mal Timeout -Fehler und 1 Mal abgerufen Daten. Ich habe es debuggen und gesehen, dass der Verbraucher des Zeitüberschreitungsfehlers nicht angerufen wird. Ich habe keine Codezeile geändert und sie erneut debuggen und diesmal Daten erhalten. Warum funktioniert es so? Warum kehrt es manchmal zurück, aber manchmal erhalten Sie eine Ausnahme von Zeitlagen? Es gibt keine vielen Daten in der Datenbank. Wie kann ich dieses Problem lösen? Was ist der Hauptgrund für dieses Problem?
Masstransit Rabbitmq erhält manchmal eine Ausnahme von Zeitüberschreitungen, manchmal rufen Sie Daten ab ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post