Kami memiliki Antrean Penyimpanan Azure yang memicu fungsi biru setelah muatan/pesan masuk ke antrean. Fungsi yang dipicu antrean memanggil fungsi tahan lama lainnya untuk memproses pesan/muatan.
Ini dia cuplikan kodenya:
[FunctionName("QueueTriggerFunction")]
public Task QueueTriggerFunction(
[QueueTrigger("MyQueue", Connection = "MyStorage")]string item,
[OrchestrationClient] DurableOrchestrationClient client,
ILogger log)
=> client.StartNewAsync("Processor", JsonConvert.DeserializeObject<MyObject>(item));
Dan fungsi tahan lamanya terlihat seperti contoh kode berikut:
[FunctionName("Processor")]
public async Task ConcurrencyProcessorAsync(
[OrchestrationTrigger] DurableOrchestrationContext context,
ILogger log)
{
var myObject= context.GetInput<MyObject>();
if(ObjectProcessor(myObject) == false)
{
throw new Exception("Processor failed");
}
}
Saya ingin payload berakhir di antrian pesan beracun jika pengecualian di atas dimunculkan setelah metode ObjectProcessor
gagal tetapi itu tidak terjadi pada kenyataannya karena pengecualian tidak muncul melalui klien orkestrator. Adakah saran tentang cara membuat pengecualian ini dikembalikan ke fungsi pemanggil yang dipicu antrian untuk membuat payload muncul di antrian pesan racun?