Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 61378|Resposta: 6

[ASP.NET] asp.net tutorial do framework hangfire de tarefas em segundo plano

[Copiar link]
Publicado em 24/05/2019 09:51:10 | | | |
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:

c# encapsula uma fila universal QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Fonte: Architect_Programmer)


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)






Anterior:Algoritmo de dados de vídeo compartilha notas
Próximo:Solicitação abortada: Falhou na criação de uma solução de canal seguro SSL/TLS
Publicado em 24/05/2019 10:12:25 |
Este post foi editado pela última vez por YuAn em 24-05-2019 às 22:20

Belo artigo aprendido
Publicado em 24/05/2019 10:12:46 |
Suporte
Publicado em 17/09/2021 21:59:44 |

Suporte
Publicado em 26/09/2022 22:20:45 |
Suporte, aprenda a usá-lo
Publicado em 12/11/2022 19:02:23 |

Suporte, aprenda a usá-lo
Publicado em 25/03/2023 09:45:31 |

Suporte, aprenda a usá-lo
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com