Leia os documentos
Este é um corredor de emprego distribuído para aplicativos .NET Standard 2.0.
Inspirado no aipo da Python, ele permite que você faça uma fila rapidamente a execução do código em um pool de trabalhadores.
Use a sintaxe de expressão natural para fila de trabalhos para execução.
Os empregos na fila são persistidos e executados automaticamente pelo primeiro trabalhador disponível.
Escala seu pool de trabalhadores simplesmente adicionando novos nós.
Apoiado por Redis, todas as tarefas são persistentes.
Recomendamos usar a CLI dotnet para começar, mas não é uma necessidade.
O DOTNET CLI faz parte do .NET Core SDK.
Recomendamos o uso do Docker para iniciar uma instância Redis local para teste. A configuração de uma instância Redis no nível de produção está fora do escopo desta documentação.
$ docker run -d -p 127.0.0.1:6379:6379 redis:4-alpineAbra um terminal e crie um novo projeto de console para começar.
$ mkdir myProject && cd myProject
$ dotnet new console$ dotnet add package Gofer.NET --version 1.0.0- * Este exemplo Program.cs mostra como fila de trabalhos para o pool de trabalhadores processar e iniciar um trabalhador para executá -los.
Algumas notas importantes:
Os trabalhadores geralmente estariam em uma máquina separada do código na fila dos trabalhos, isso é puramente para dar um exemplo.
Mais trabalhadores podem ser adicionados a qualquer momento e começarão a capturar empregos da fila imediatamente.
public class Program
{
public static async Task Main ( string [ ] args )
{
var redisConnectionString = "127.0.0.1:6379" ;
// Create a Task Client connected to Redis
var taskClient = new TaskClient ( TaskQueue . Redis ( redisConnectionString ) ) ;
// Queue up a Sample Job
await taskClient . TaskQueue . Enqueue ( ( ) => SampleJobFunction ( "Hello World!" ) ) ;
// Start the task listener, effectively turning this process into a worker.
// NOTE: This will loop endlessly waiting for new tasks.
await taskClient . Listen ( ) ;
}
private static void SampleJobFunction ( object value )
{
Console . WriteLine ( value . ToString ( ) ) ;
}
}Leia os documentos para obter mais detalhes.