O Hangfire funciona com a maioria das plataformas .NET:.NET Framework 4.5 ou posterior.NET Core 1.0 ou posterior, qualquer coisa relacionada a . Plataforma compatível com NET Standard 1.3. Você pode integrá-lo com quase qualquer framework de aplicação, incluindo ASP.NET, ASP.NET Core, aplicativos de console, serviços Windows, WCF e drivers comunitários como Nancy ou ServiceStack.
Cenários aplicáveis:O segundo plano envia o e-mail de forma assíncrona e retorna uma resposta ao usuário o mais rápido possível. Execução programada de tarefas, execução cíclica das tarefas, execução assíncrona de tarefas que consomem tempo, conclusão da execução da tarefa A e depois execução das tarefas B, e execução em lote das tarefas. Como eu fazia antes:
Você pode colocar processamento em segundo plano em ASP.NET aplicação sem usar outros processos como os serviços do Windows. O código do Hangfire está pronto para implantaçãoTérmino inesperado de processos, reciclagem de pool de aplicações e reinício。 Devido ao usoArmazenamento persistente, por isso vocêNenhum emprego de base é perdido。
Primeiro, as renderizações são as seguintes:
A imagem acima é o painel do Hangfire Dashboard, que é muito útil e pode verificar o status das tarefas em segundo plano, além de ser muito legal, então precisa ser configurado.
A interface do painel exige uma classe inicial, apenas se vocêAo configurar o Hangfire com a classe Startup,Interface do PainelPode ser usado。
No começo, não configurei o painel do Hangfire Dashboard e recebi o seguinte erro:
Os seguintes erros ocorreram ao tentar carregar o app. - Nenhum assembly encontrado contendo um OwinStartupAttribut. - Nenhum assembly encontrado contendo um Startup ou [AssemblyName]. Classe de startup. Para desativar a descoberta de inicialização do OWIN, adicione a configuração de appSettings owin:AutomaticAppStartup com o valor "false" no seu web.config. Para especificar o Assembly, Classe ou Método de inicialização OWIN, adicione o appSetting owin:AppStartup com a classe de inicialização totalmente qualificada ou nome do método de configuração no seu web.config.
Solução:
Ao usar inicialização baseada em Global.asax.cs, você também pode precisar desabilitar a detecção de classe de inicialização do OWIN.
Começamos a chegar ao ponto, o tutorial começa:
1: A estrutura deve atender às necessidades do hangfire,Meu projeto é .net 4.6.2, Então, você pode instalar o Hangfire normalmente, projetos .net 4.0 não precisam tentar, não são suportados!
2: O comando nuget é o seguinte:
3: A classe OWIN Startup foi projetada para manter a lógica de boot da aplicação web em um só lugar. No Visual Studio 2013, você pode adicioná-lo clicando com o botão direito no projeto e selecionando o item do menu Add/OWIN Startup Class. Como mostrado abaixo:
Crie um novo arquivo Startup.cs no diretório raiz do projeto.
4: ConfiguraçãoString de conexão com banco de dados, a versão SQL Server 2012 que estou usando aqui, a configuração no web.config é a seguinte:
5: Configure o Painel do Hangfire para acessar o filtro, crie um novoHangfireAuthorizationFilter.csArquivo.
Por padrão, apenas o acesso local ao Painel do Hangfire é permitido. A autorização do painel deve ser configurada para permitir acesso remoto.
6: Configure a classe Startup.cs, o código é o seguinte:
7: Iniciar um projeto de site
Execute o aplicativo F5 pressionando modo depuração (isso requer olhar para a saída do método Debug.WriteLine). Depois, verifique a mensagem a seguir na janela de Saída para ver se o processamento em segundo plano foi iniciado com sucesso.
Ao mesmo tempo, o banco de dados também possui mais 11 tabelas para garantir que todas as tarefas possam ser executadas normalmente, e que as tarefas não sejam perdidas sob a recuperação IIS ou reinício do processo, como mostrado na figura abaixo:
http://<your-web-app>/fogueira Visite a URL da interface do Dashboard para ver a renderização no topo do artigo.
Uso anexado
Atira e esqueça (publicar/assinar)
Esse é o principal tipo de tarefa em segundo plano que a fila de mensagens persistentes gerencia. Quando você cria uma tarefa de publicação/assinatura, a tarefa será salva na fila padrão (a fila padrão é "Padrão", mas múltiplas filas são suportadas). Vários trabalhadores dedicados escutam essa fila, pegam tarefas dela e completam as tarefas.
Atraso
Se você quiser atrasar a execução de certas tarefas, pode usar as seguintes tarefas. Após um determinado tempo de atraso, a tarefa é colocada em fila e executada como uma tarefa de publicação/assinatura.
Loop
Para chamar o método por periodicidade (horas, dias, etc.), use a classe RecurringJob. Em cenários complexos, você pode usar expressões CRON para especificar um horário programado para processar tarefas.
Contínuo
A continuidade permite definir fluxos de trabalho complexos vinculando múltiplas tarefas em segundo plano.
Link oficial de documentação:O login do hiperlink está visível.
(Fim)
|