Триггер очереди Azure нажимает, но не выполняет логику внутри нееC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Триггер очереди Azure нажимает, но не выполняет логику внутри нее

Сообщение 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)

Я проверил эти файлы, и похоже, что с ними нет проблем. Строка подключения правильная, и с ней, похоже, нет проблем с настройкой. Пакеты также обновлены.
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Триггер очереди Azure нажимает, но не выполняет логику внутри нее
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Остановите триггер очереди функций Azure с помощью ArmClient
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Остановите триггер очереди функций Azure с помощью ArmClient
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Функции приложений Azure, триггер очереди хранилища
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Функции приложений Azure, триггер очереди хранилища
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»