Lisez les documents
Il s'agit d'un coureur de travail distribué pour .NET Standard 2.0 Applications.
Inspiré par le céleri de Python, il vous permet de faire rapidement filer l'exécution de code sur un pool de travailleurs.
Utilisez une syntaxe d'expression naturelle pour filer des travaux pour l'exécution.
Les travaux en file d'attente sont persistés et gérés automatiquement par le premier travailleur disponible.
Échellez votre pool de travailleurs en ajoutant simplement de nouveaux nœuds.
Soutenu par Redis, toutes les tâches sont persistantes.
Nous vous recommandons d'utiliser la CLI Dotnet pour commencer, mais ce n'est pas une nécessité.
Le DOTNET CLI fait partie du SDK .net Core.
Nous vous recommandons d'utiliser Docker pour démarrer une instance Redis locale pour les tests. La mise en place d'une instance Redis au niveau de la production est hors de portée de cette documentation.
$ docker run -d -p 127.0.0.1:6379:6379 redis:4-alpineOuvrez un terminal et créez un nouveau projet de console pour commencer.
$ mkdir myProject && cd myProject
$ dotnet new console$ dotnet add package Gofer.NET --version 1.0.0- * Cet exemple de Program.cs montre comment faire la file d'attente pour le pool de travailleurs pour traiter, puis démarrer un travailleur pour aller les exécuter.
Quelques notes importantes:
Les travailleurs se trouvaient généralement sur une machine distincte du code faisant la queue des travaux, c'est purement pour donner un exemple.
Plus de travailleurs peuvent être ajoutés à tout moment et commenceront immédiatement à prendre des travaux dans la file d'attente.
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 ( ) ) ;
}
}Lisez les documents pour plus de détails.