Можно ли создавать оповещения вне очереди позиций? У меня есть функция триггера больших двоичных объектов, но когда она терпит неудачу x
раз, она помещает это сообщение в очередь отравлений. Что я пытаюсь сделать, так это создать оповещение, когда в этой ядовитой очереди будет x
.
- Я могу сделать это с помощью sidecart-подхода, когда у меня есть независимая служба, которая отслеживает отравленные очереди.
- Видел этот подход https://stackoverflow.com/a/46334184/1134076
- Я надеялся использовать переопределение
blobproperties
для хранения некоторыхmetadata
, чтобы я мог отслеживать сбои, но, похоже, нет способа сделать это? Я думал о последней попытке отследить событие до состоянияmoving message to poison queue
Есть ли лучший способ сделать это?
[FunctionName("MyFunction")]
public async Task Run(
[BlobTrigger("input-queue", Connection = "ConnectionString")] Stream blobContent,
string name,
System.Uri uri,
IDictionary<string, string> metaData,
BlobProperties properties,
ILogger log)
EDIT Заметил эту перегрузку для функции:
[FunctionName("MyFunction")]
public async Task Run(
[BlobTrigger("input-queue", Connection = "ConnectionString")] ICloudBlob blobContent,
string name,
System.Uri uri,
IDictionary<string, string> metaData,
BlobProperties properties,
ILogger log)
{
if (!blobContent.Metadata.ContainsKey("mycount"))
{
blobContent.Metadata["mycount"] = "1";
await blobContent.SetMetadataAsync();
}
else
{
var value = int.Parse(blobContent.Metadata["mycount"]);
value++;
blobContent.Metadata["mycount"] = value.ToString();
await blobContent.SetMetadataAsync();
}
throw new Exception(("Testing Function"));
}
Кажется излишним, но я могу отслеживать количество сбоев здесь и писать логику для отслеживания пользовательских событий.