Leer los documentos
Este es un corredor de trabajo distribuido para aplicaciones .NET Standard 2.0.
Inspirado por Celery para Python, le permite hacer cola rápidamente la ejecución del código en un grupo de trabajadores.
Use la sintaxis de expresión natural para colocar los trabajos para la ejecución.
Los trabajos en cola son persistidos y administrados automáticamente por el primer trabajador disponible.
Escala su grupo de trabajadores simplemente agregando nuevos nodos.
Respaldado por Redis, todas las tareas son persistentes.
Recomendamos usar la CLI de Dotnet para comenzar, pero no es una necesidad.
La CLI de Dotnet es parte del SDK .NET Core.
Recomendamos usar Docker para iniciar una instancia local de Redis para las pruebas. La configuración de una instancia de Redis de nivel de producción está fuera del alcance de esta documentación.
$ docker run -d -p 127.0.0.1:6379:6379 redis:4-alpineAbra un terminal y cree un nuevo proyecto de consola para comenzar.
$ mkdir myProject && cd myProject
$ dotnet new console$ dotnet add package Gofer.NET --version 1.0.0- * Este Program.cs de ejemplo.cs muestra cómo colocar los trabajos para que el grupo de trabajadores los procese, luego comience a un trabajador para que los ejecute.
Algunas notas importantes:
Los trabajadores generalmente estarían en una máquina separada del código que hace cola los trabajos, esto es puramente dar un ejemplo.
Se pueden agregar más trabajadores en cualquier momento y comenzarán a recoger trabajos de la cola de inmediato.
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 ( ) ) ;
}
}Lea los documentos para más detalles.