у меня есть триггер очереди лазурного оборудования, и когда я добавляю новое сообщение в очередь, его поднимается на триггер, но логика в самой функции не выполняется. < /p>
Сообщение Мы видим в консоли ... < /p>
Executing 'Functions.ProcessVoidData' (Reason='New queue message detected on 'void-queue'.', Id=a402eaf8-5885-4246-bf83-66eb026b65c2)
[2025-01-23T11:01:29.323Z] Trigger Details: MessageId: 38d917df-3217-4397-9149-eaeb05f05b7d, DequeueCount: 1, InsertedOn: 2025-01-23T11:01:28.000+00:00
[2025-01-23T11:01:29.361Z] Executed 'Functions.ProcessVoidData' (Succeeded, Id=a402eaf8-5885-4246-bf83-66eb026b65c2, Duration=44ms)
Я проверил эти файлы, и похоже, что с ними нет проблем. Строка подключения правильная, и с ней, похоже, нет проблем с настройкой. Пакеты также обновлены.
host.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
}
}
Нашел ту же проблему, но не смог решить свою проблему:
Изменить
Проблема GitHub
public async Task Run([QueueTrigger(QueueName, Connection = EnvironmentVariable.VoidStorageAccount)] VoidDataQueueDto voidQueueDto)
{
var voidRawData = voidQueueDto.VoidData;
try
{
_logger.LogInformation($"Handle Id: {voidRawData.HandleId}");
_logger.LogInformation($"Blob Id: {voidRawData.RawDataBlobId}");
var voidBlob = await GetRawVoidData(voidRawData.RawDataBlobId, _logger);
if (voidBlob == null)
{
_logger.LogCritical("Void payload is null");
return;
}
_logger.LogInformation("Void Raw Size: " + voidBlob.Length.ToString());
//Parse the payload
VoidPayload voidPayload = DecodeVoidData.ParseRawVoidPayload(voidBlob, _logger);
if(voidPayload == null)
{
_logger.LogError("Void payload is null");
return;
}
var healthSystemHandleResponse = await _pnDbApiService.GetHealthSystemByHandleId(voidRawData.HandleId);
if (healthSystemHandleResponse.Status != StatusCodes.Status200OK)
{
_logger.LogCritical(healthSystemHandleResponse.Error);
_logger.LogError("Unable to get health system associated with handle");
await MoveBlobToErrorContainer(voidRawData.RawDataBlobId, voidRawData.HandleId, VoidFailureType.NoStudy, _logger);
return;
}
var healthSystemHandle = healthSystemHandleResponse.Response;
var studyId = healthSystemHandle.StudyId;
_logger.LogInformation($"Health system : {healthSystemHandle.HealthSystemKey}");
voidPayload.HandleStats.StudyId = studyId;
voidPayload.HandleStats.HandleId = voidRawData.HandleId;
voidPayload.HandleStats.TimeStamp = voidRawData.VoidTimestamp;
voidPayload.HandleStats.DcdVersion = voidRawData.DcdVersion;
// Run the parsed data through processor
var rawData = new RawData(
voidPayload.Header.HardwareRevision,
voidPayload.Header.FirmwareVersion,
voidPayload.Header.IsMale,
voidPayload.Header.FloatAngleZero,
voidPayload.DataPoints,
new Acceleration(voidPayload.Header.AccelCalX, voidPayload.Header.AccelCalY, voidPayload.Header.AccelCalZ));
var processedVoidData = _voidDataProcessor.ProcessData(rawData);
// Save all data (raw and processed) to db
var processedVoidDataForDb = new VoidProcessedDataDto()
{
StudyId = studyId,
HandleId = voidRawData.HandleId,
IsValidVoid = processedVoidData.IsValidVoid,
VoidTime = voidQueueDto.IsTestCase ? voidRawData.VoidTimestamp : DateTime.Parse(voidPayload.Header.DateTimeStr, CultureInfo.InvariantCulture),
VoidedVolume = processedVoidData.VoidedVolume,
QMax = processedVoidData.QMax,
QAvg = processedVoidData.QAvg,
TimeToQMax = processedVoidData.TimeToQMax,
VoidDuration = processedVoidData.VoidDuration,
FlowDuration = processedVoidData.FlowDuration,
FlowRates = processedVoidData.FlowRates,
FloatAngles = voidPayload.DataPoints.Select(a => a.Angle.Degrees).ToArray(),
RawDataBlobId = voidRawData.RawDataBlobId,
RawVoidSize = voidBlob.Length,
HealthSystemKey = healthSystemHandle.HealthSystemKey,
}
var voidData = new CreateVoidDataDto()
{
HandleStatistics = voidPayload.HandleStats,
VoidProcessedData = processedVoidDataForDb
};
var data = JsonConvert.SerializeObject(voidData);
_logger.LogInformation(data);
int voidId = 0;
if (voidQueueDto.FailureType == VoidFailureType.None || voidQueueDto.FailureType == VoidFailureType.Saving || voidQueueDto.FailureType == VoidFailureType.NoStudy)
{
voidId = await _pnDbApiService.SendNewProcessedVoidData(voidData);
if (voidId == 0)
{
_logger.LogError($"Unable to save void data in pndb for handle : {voidRawData.HandleId}");
voidQueueDto.FailureType = VoidFailureType.Saving;
voidQueueDto.Iteration++;
string messageContent = JsonConvert.SerializeObject(voidQueueDto);
var plainTextBytes = Encoding.UTF8.GetBytes(messageContent);
var message = Convert.ToBase64String(plainTextBytes);
var inqueueTime = TimeSpan.FromSeconds(300);
await _queueClient.SendMessageAsync(message, inqueueTime, null);
return;
}
voidQueueDto.ExistingVoidId = voidId;
}
var isSuccess = await MoveBlobToCustomerStorage(voidRawData.RawDataBlobId, voidRawData.HandleId, studyId.ToString(), healthSystemHandle.HealthSystemKey, _logger);
var processVoidActionDto = new ProcessVoidActionDto()
{
VoidId = voidId,
StudyId = studyId,
};
}
catch (Exception e)
{
_logger.LogCritical(ConstantsMessages.EXCEPTION + ConstantsMessages.SingleSpace + $"{e.Message}");
_logger.LogCritical(e.StackTrace);
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... side-of-it
Триггер очереди Azure нажимает, но не выполняет логику внутри нее ⇐ C#
Место общения программистов C#
-
Anonymous
1737706991
Anonymous
у меня есть триггер очереди лазурного оборудования, и когда я добавляю новое сообщение в очередь, его поднимается на триггер, но логика в самой функции не выполняется. < /p>
Сообщение Мы видим в консоли ... < /p>
Executing 'Functions.ProcessVoidData' (Reason='New queue message detected on 'void-queue'.', Id=a402eaf8-5885-4246-bf83-66eb026b65c2)
[2025-01-23T11:01:29.323Z] Trigger Details: MessageId: 38d917df-3217-4397-9149-eaeb05f05b7d, DequeueCount: 1, InsertedOn: 2025-01-23T11:01:28.000+00:00
[2025-01-23T11:01:29.361Z] Executed 'Functions.ProcessVoidData' (Succeeded, Id=a402eaf8-5885-4246-bf83-66eb026b65c2, Duration=44ms)
Я проверил эти файлы, и похоже, что с ними нет проблем. Строка подключения правильная, и с ней, похоже, нет проблем с настройкой. Пакеты также обновлены.
[b]host.json[/b]
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
}
}
Нашел ту же проблему, но не смог решить свою проблему:
Изменить
Проблема GitHub
public async Task Run([QueueTrigger(QueueName, Connection = EnvironmentVariable.VoidStorageAccount)] VoidDataQueueDto voidQueueDto)
{
var voidRawData = voidQueueDto.VoidData;
try
{
_logger.LogInformation($"Handle Id: {voidRawData.HandleId}");
_logger.LogInformation($"Blob Id: {voidRawData.RawDataBlobId}");
var voidBlob = await GetRawVoidData(voidRawData.RawDataBlobId, _logger);
if (voidBlob == null)
{
_logger.LogCritical("Void payload is null");
return;
}
_logger.LogInformation("Void Raw Size: " + voidBlob.Length.ToString());
//Parse the payload
VoidPayload voidPayload = DecodeVoidData.ParseRawVoidPayload(voidBlob, _logger);
if(voidPayload == null)
{
_logger.LogError("Void payload is null");
return;
}
var healthSystemHandleResponse = await _pnDbApiService.GetHealthSystemByHandleId(voidRawData.HandleId);
if (healthSystemHandleResponse.Status != StatusCodes.Status200OK)
{
_logger.LogCritical(healthSystemHandleResponse.Error);
_logger.LogError("Unable to get health system associated with handle");
await MoveBlobToErrorContainer(voidRawData.RawDataBlobId, voidRawData.HandleId, VoidFailureType.NoStudy, _logger);
return;
}
var healthSystemHandle = healthSystemHandleResponse.Response;
var studyId = healthSystemHandle.StudyId;
_logger.LogInformation($"Health system : {healthSystemHandle.HealthSystemKey}");
voidPayload.HandleStats.StudyId = studyId;
voidPayload.HandleStats.HandleId = voidRawData.HandleId;
voidPayload.HandleStats.TimeStamp = voidRawData.VoidTimestamp;
voidPayload.HandleStats.DcdVersion = voidRawData.DcdVersion;
// Run the parsed data through processor
var rawData = new RawData(
voidPayload.Header.HardwareRevision,
voidPayload.Header.FirmwareVersion,
voidPayload.Header.IsMale,
voidPayload.Header.FloatAngleZero,
voidPayload.DataPoints,
new Acceleration(voidPayload.Header.AccelCalX, voidPayload.Header.AccelCalY, voidPayload.Header.AccelCalZ));
var processedVoidData = _voidDataProcessor.ProcessData(rawData);
// Save all data (raw and processed) to db
var processedVoidDataForDb = new VoidProcessedDataDto()
{
StudyId = studyId,
HandleId = voidRawData.HandleId,
IsValidVoid = processedVoidData.IsValidVoid,
VoidTime = voidQueueDto.IsTestCase ? voidRawData.VoidTimestamp : DateTime.Parse(voidPayload.Header.DateTimeStr, CultureInfo.InvariantCulture),
VoidedVolume = processedVoidData.VoidedVolume,
QMax = processedVoidData.QMax,
QAvg = processedVoidData.QAvg,
TimeToQMax = processedVoidData.TimeToQMax,
VoidDuration = processedVoidData.VoidDuration,
FlowDuration = processedVoidData.FlowDuration,
FlowRates = processedVoidData.FlowRates,
FloatAngles = voidPayload.DataPoints.Select(a => a.Angle.Degrees).ToArray(),
RawDataBlobId = voidRawData.RawDataBlobId,
RawVoidSize = voidBlob.Length,
HealthSystemKey = healthSystemHandle.HealthSystemKey,
}
var voidData = new CreateVoidDataDto()
{
HandleStatistics = voidPayload.HandleStats,
VoidProcessedData = processedVoidDataForDb
};
var data = JsonConvert.SerializeObject(voidData);
_logger.LogInformation(data);
int voidId = 0;
if (voidQueueDto.FailureType == VoidFailureType.None || voidQueueDto.FailureType == VoidFailureType.Saving || voidQueueDto.FailureType == VoidFailureType.NoStudy)
{
voidId = await _pnDbApiService.SendNewProcessedVoidData(voidData);
if (voidId == 0)
{
_logger.LogError($"Unable to save void data in pndb for handle : {voidRawData.HandleId}");
voidQueueDto.FailureType = VoidFailureType.Saving;
voidQueueDto.Iteration++;
string messageContent = JsonConvert.SerializeObject(voidQueueDto);
var plainTextBytes = Encoding.UTF8.GetBytes(messageContent);
var message = Convert.ToBase64String(plainTextBytes);
var inqueueTime = TimeSpan.FromSeconds(300);
await _queueClient.SendMessageAsync(message, inqueueTime, null);
return;
}
voidQueueDto.ExistingVoidId = voidId;
}
var isSuccess = await MoveBlobToCustomerStorage(voidRawData.RawDataBlobId, voidRawData.HandleId, studyId.ToString(), healthSystemHandle.HealthSystemKey, _logger);
var processVoidActionDto = new ProcessVoidActionDto()
{
VoidId = voidId,
StudyId = studyId,
};
}
catch (Exception e)
{
_logger.LogCritical(ConstantsMessages.EXCEPTION + ConstantsMessages.SingleSpace + $"{e.Message}");
_logger.LogCritical(e.StackTrace);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79381171/azure-queue-trigger-is-hit-but-not-executing-the-logic-inside-of-it[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия