Gofer.NET
1.0.0
ドキュメントを読んでください
これは、.NET標準2.0アプリケーションの分散ジョブランナーです。
PythonのCeleryに触発されたこの場合、ワーカープールでコードの実行をすばやくキューにすることができます。
Natural Expression Syntaxを使用して、実行のためにジョブをキューにします。
キューに巻かれたジョブは持続し、最初の利用可能な労働者によって自動的に実行されます。
新しいノードを追加するだけで、ワーカープールをスケーリングします。
Redisに裏打ちされたすべてのタスクは永続的です。
Dotnet CLIを使用して開始することをお勧めしますが、それは必須ではありません。
DotNet CLIは、.NET Core SDKの一部です。
Dockerを使用して、テストのためにローカルRedisインスタンスを起動することをお勧めします。制作レベルのRedisインスタンスのセットアップは、このドキュメントの範囲外です。
$ docker run -d -p 127.0.0.1:6379:6379 redis:4-alpineターミナルを開き、新しいコンソールプロジェクトを作成して開始します。
$ mkdir myProject && cd myProject
$ dotnet new console$ dotnet add package Gofer.NET --version 1.0.0- *この例Program.cs 、労働者プールが処理するためにジョブをキューに並べ、労働者を開始して実行する方法を示しています。
いくつかの重要なメモ:
労働者は通常、ジョブを並べているコードから別のマシンに乗っていますが、これは純粋に例を挙げます。
より多くの労働者をいつでも追加することができ、すぐにキューからジョブを拾い始めます。
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 ( ) ) ;
}
}詳細については、ドキュメントをお読みください。