Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

351
Views
Uso de SignalR en una función de proceso aislado .Net 5.0

Estoy actualizando una función azul de .Net core 3.1 que usa un ServiceBusTrigger, a una función de proceso aislado de .Net 5.0. La función usa SignalR para transmitir mensajes en tiempo real a lo largo de los pasos del proceso, por ejemplo: "Apertura de archivo"... "Lectura de registros: 10 % completo"... "Preparación para mostrar registros", etc. Se transmiten varios mensajes a través de SignalR durante una sola ejecución de la función.

La firma de la función .Net core 3.1 era similar a esto:

 [FunctionName("MyFunction")] public async Task RunTopic( [ServiceBusTrigger("TopicName", "SubscriptionName", Connection = "ConnectionString")] string message, ILogger log, ExecutionContext executionContext, [SignalR(HubName = "Hub", ConnectionStringSetting = "SignalRConnectionString")]IAsyncCollector<SignalRMessage> signalRMessages ) { ... }

Y, a continuación, se muestra un ejemplo de la lógica utilizada para transmitir los mensajes:

 await signalRMessages.AddAsync( new SignalRMessage { Target = "newMessage", Arguments = new[] { $"Message content" } });

Al convertir la función en una función de proceso aislado de .Net 5.0, noté que la implementación de SignalR es un poco diferente. He encontrado ejemplos; sin embargo, parecen abordar escenarios básicos.

En una función de proceso aislado de .Net 5.0, ¿qué pasos se necesitan para permitir que se transmitan varios mensajes en tiempo real a través de SignalR, durante una sola ejecución de la función? Los ejemplos que he visto hasta ahora parecen permitir que se transmita un solo mensaje con cada ejecución de la función.

Este es un ejemplo de la firma del método, después de actualizar la función a una función aislada de .Net 5.0:

 [Function("MyFunction")] [SignalROutput(HubName = "Hub", ConnectionStringSetting = "SignalRConnectionString")] public async Task<CustomMessage> Run( [ServiceBusTrigger("TopicName", "Subscription", Connection = "ConnectionString")] string message, FunctionContext functionContext) { ... } public class CustomMessage { public string Target { get; set; } public object[] Arguments { get; set; } }

Información adicional:

Encontré este artículo publicado que describe lo que estoy preguntando: https://github.com/Azure/azure-functions-dotnet-worker/issues/179

Es decir, IAsyncCollector, compatible con .Net Core 3.1, parecía permitir que se enviaran varios mensajes diferentes/únicos durante el transcurso de la ejecución de la función, en lugar de enviar solo el último mensaje, una vez que se completó la función. En este momento se están considerando alternativas, ya que los comentarios en el vínculo anterior indican que es posible que este comportamiento no se admita en las funciones de proceso aisladas de .Net 5.0.

over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!