У меня есть библиотека библиотеки классов, называемая AppCore, которая хранит весь доступ к базе данных и содержит всю логику приложения.Hangfire в отдельной библиотеке классов DLL, которая вызывается из ASP.Net MVC5
Эта библиотека потребляется приложением ASP.Net (MVC5), которое использует библиотеку для доступа к БД (посредством открытых методов) и специфической для приложения логики (Entity Framework или DBContext не выставляется из DLL).
AppCore имеет несколько методов, которые могут занять несколько минут. Эти методы нужно вызывать из приложения ASP.Net.
Я думаю, мы все знаем, что длинные вызовы в ASP.Net - это все: «Нет, не делайте этого, это сосает тип вещи, и вы будете проклинать для этого».
Поэтому я изучаю Hangfire.io, рекомендованный, среди прочих, Scott Hanselman для длительных вызовов ASP.Net.
Теперь мой вопрос заключается в том, что если кто-нибудь знает, как реализовать Hangfire в библиотеке DLL класса, которая, в свою очередь, будет потребляться приложением ASP.Net. В AppCore.dll есть DbContext, и он имеет длительные методы. Но вызовы будут поступать из ASP.Net, который не имеет прямого знания о базе данных или длинной кодовой логике.
Редактировать: Лучший способ, которым я могу это сделать, - установить Hangfire в приложении ASP.Net и настроить отдельный DBC-текст только для этого. Однако я предпочел бы иметь все это в DLL AppCore и не распространять логику.
Вы находитесь на правильном пути. Hangfire идеально подходит для отложенных задач от ASP.net. Тем не менее, я не уверен, что понимаю источник вашего беспокойства. Вы заявляете, что appcore.dll владеет собственными зависимостями, такими как dbcontext и т. д., однако вы предлагаете создать dbcontext в своем коде ASP.net. Это потому, что вам нужно вставить dbcontext где-нибудь? –
Ну, я предполагаю, что Hangfire нуждается во мне, чтобы запускать вещи в Startup.Configuration сайта ASP.Net (как указано в руководстве). Но поскольку ASP.Net не знает базы данных, это становится сложно. В настоящее время рассматривается возможность создания отдельной базы данных frontend только для Hangfire и не «загрязнять» базовую базу данных. – JensB
Если я просто использую hangfire в отдельной DLL и ничего не делаю при запуске сайта ASP.Net, он все равно будет сохраняться? " – JensB