Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 61378|Respuesta: 6

[ASP.NET] asp.net tutorial de Hangfire de tareas en segundo plano

[Copiar enlace]
Publicado en 24/5/2019 9:51:10 | | | |
Hangfire funciona con la mayoría de las plataformas .NET:.NET Framework 4.5 o posterior.NET Core 1.0 o posterior, cualquier cosa relacionada con . Plataforma compatible con NET Standard 1.3. Puedes integrarlo con casi cualquier framework de aplicaciones, incluyendo ASP.NET, ASP.NET Core, aplicaciones de consola, servicios de Windows, WCF y controladores comunitarios como Nancy o ServiceStack.

Escenarios aplicables:El segundo plano envía el correo electrónico de forma asincrónica y responde al usuario lo antes posible. Ejecución programada de tareas, ejecución cíclica de tareas, ejecución asíncrona de tareas que consumen tiempo, finalización de la ejecución de la tarea A y luego ejecución de tareas B, y ejecución por lotes de tareas.
Cómo lo hacía antes:

c# encapsula una cola universal QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Fuente: Architect_Programmer)


Puedes poner procesamiento en segundo plano en ASP.NET aplicación sin usar otros procesos como los servicios de Windows. El código de Hangfire está listo para su despliegueTerminación inesperada de procesos, reciclaje de pools de aplicaciones y reinicio。 Debido a su usoAlmacenamiento persistente, de ahí túNo se pierden trabajos de asistente

Primero, las representaciones son las siguientes:




La imagen de arriba es el panel de control de Hangfire, que es muy útil y puede comprobar el estado de las tareas en segundo plano, además de ser muy interesante, así que debe configurarse.

La interfaz del panel requiere una clase de inicio, solo si túAl configurar Hangfire con la clase Inicio,Interfaz del panel de controlSe puede usar

Al principio, no configuré el panel de control de Hangfire y me salió el siguiente error:

Los siguientes errores ocurrieron al intentar cargar la aplicación.
- No se encontró ningún ensamblador que contenga un OwinStartupAttribut.
- No se ha encontrado ensamblador que contenga un Inicio o [Nombre del ensamblaje]. Clase de startup.
Para desactivar el descubrimiento de inicio de OWIN, añade la opción appSetting owin:AutomaticAppStartup con el valor de "false" en tu web.config.
Para especificar el ensamblador, clase o método de inicio de OWIN, añade el appSetting owin:AppStartup con la clase de inicio totalmente calificada o el nombre del método de configuración en tu web.config.



Solución:

Al usar inicialización basada en Global.asax.cs, también puede que necesites desactivar la detección de clases de inicio de OWIN.

Empezamos a ir al grano, el tutorial comienza:

1: El marco debe satisfacer las necesidades de la Hangfire,Mi proyecto es .net 4.6.2, Así que puedes instalar Hangfire normalmente, los proyectos .net 4.0 no necesitan intentarlo, ¡no están soportados!

2: El comando nuget es el siguiente:

3: La clase OWIN Startup está diseñada para mantener la lógica de arranque de la aplicación web en un solo lugar. En Visual Studio 2013, puedes añadirlo haciendo clic derecho en el proyecto y seleccionando el elemento de menú Añadir/OWIN Clase de Inicio. Como se muestra a continuación:



Crea un nuevo archivo Startup.cs en el directorio raíz del proyecto.

4: ConfiguraciónCadena de conexión de bases de datos, la versión de SQL Server 2012 que estoy usando aquí, la configuración en web.config es la siguiente:

5: Configurar el Panel de Hangfire para acceder al filtro y crear uno nuevoHangfireAuthorizationFilter.csArchivo.

Por defecto, solo se permite el acceso local al Panel de Control de Hangfire. La autorización del panel debe configurarse para permitir el acceso remoto.


6: Configura la clase Startup.cs, el código es el siguiente:


7: Iniciar un proyecto web

Ejecuta la aplicación F5 pulsando modo depuración (esto requiere mirar la salida del método Debug.WriteLine). Luego revisa el siguiente mensaje en la ventana de Salida para ver si el procesamiento en segundo plano ha comenzado con éxito.



Al mismo tiempo, la base de datos también cuenta con 11 tablas más para garantizar que todas las tareas puedan ejecutarse con normalidad, y que las tareas no se pierdan bajo la recuperación IIS o el reinicio del proceso, como se muestra en la figura siguiente:



http://<your-web-app>/fuego colgante

Visita la URL de la interfaz del Panel para ver el renderizado al principio del artículo.

Uso adjunto

Disparar y olvidar (publicar/suscribirse)

Este es el tipo principal de tarea en segundo plano que gestiona la cola de mensajes persistentes. Cuando creas una tarea de publicación/suscripción, la tarea se guardará en la cola predeterminada (la cola predeterminada es "Default", pero se admiten varias colas). Varios trabajadores dedicados escuchan esta cola, recuperan tareas de ella y completan las tareas.


Retraso

Si quieres retrasar la ejecución de ciertas tareas, puedes utilizar las siguientes. Tras un tiempo de retraso dado, la tarea se pone en cola y se ejecuta como una tarea de publicación/suscripción.

Bucle

Para llamar al método por periodicidad (horas, días, etc.), utiliza la clase RecurringJob. En escenarios complejos, puedes usar expresiones CRON para especificar un tiempo programado para procesar tareas.


Continuo

La continuidad te permite definir flujos de trabajo complejos vinculando múltiples tareas en segundo plano.


Enlace oficial de documentación:El inicio de sesión del hipervínculo es visible.

(Fin)






Anterior:El algoritmo de datos de vídeo comparte notas
Próximo:Solicitud abortada: No se ha conseguido crear una solución de canal seguro SSL/TLS
Publicado en 24/5/2019 10:12:25 |
Esta publicación fue editada por última vez por YuAn el 24-5-2019 a las 22:20

Buen artículo aprendido
Publicado en 24/5/2019 10:12:46 |
Soporte
Publicado en 17/9/2021 21:59:44 |

Soporte
Publicado en 26/9/2022 22:20:45 |
Apoyo, aprende a usarlo
Publicado en 12/11/2022 19:02:23 |

Apoyo, aprende a usarlo
Publicado en 25/3/2023 9:45:31 |

Apoyo, aprende a usarlo
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com