2017-01-09 3 views
0

Je cours Windows Server 2012 avec IIS 8.5, j'ai besoin d'exécuter des tâches d'arrière-plan de longue durée et je veux éviter d'imposer IIS avec backgroundtasks. Je trouve un peu flou les processus que Hangfire impose lors de l'exécution de ses tâches. Est-ce qu'il exécute des threads Windows purs? Ou utilise-t-il toujours les mêmes threads IIS que mes webapps utilisent (et donc ralentit IIS et le rend instable).charge de traitement Hangfire lors de l'utilisation avec IIS, quel processus est taxé?

Merci!

Répondre

1

Si vous exécutez votre serveur d'arrière-plan à partir de votre application Web, il exécute ces tâches d'arrière-plan dans le processus IIS, comme vous le supposez.
Cependant, il utilise des threads différents de ceux qui traitent les requêtes, donc cela ne devrait pas affecter les performances de votre application principale.

Si vous trouvez que cela cause un problème, vous pouvez toujours exécuter le serveur d'arrière-plan dans une application de console, totalement en dehors d'IIS.

Ceci a des avantages supplémentaires de mise à l'échelle horizontale - pourrait avoir plusieurs serveurs exécutant cette application de la console, pointant vers la même file d'attente. Comment j'implémenterais le scénario de la console?

+0

Je ne vois aucune documentation à ce sujet. Voulez-vous dire créer une application de console et lancer Hangfire, et utiliser le même stockage que celui que j'utiliserais dans ma webapp ou quelque chose de similaire? – user2713516

+0

http://docs.hangfire.io/en/latest/background-processing/processing-jobs-in-console-app.html –