- Notifications
You must be signed in to change notification settings - Fork47
Easy C# API for Distributed Background Tasks/Jobs for .NET Core.
License
brthor/Gofer.NET
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a distributed job runner for .NET Standard 2.0 Applications.
Inspired by Celery for Python, it allows you to quickly queue code execution on a worker pool.
Use natural expression syntax to queue jobs for execution.
Queued jobs are persisted, and automatically run by the first available worker.
Scale your worker pool by simply adding new nodes.
Backed by Redis, all tasks are persistent.
We recommend using thedotnet cli to get started, but it's not a necessity.
The dotnet cli is part of the.NET Core SDK.
We recommend usingdocker to start a local Redis instance for testing. Setting up a production-level Redis instance is out of the scope of this documentation.
$ docker run -d -p 127.0.0.1:6379:6379 redis:4-alpine
Open up a terminal and create a new console project to get started.
$ mkdir myProject&&cd myProject$ dotnet new console
$ dotnet add package Gofer.NET --version 1.0.0-*
This exampleProgram.cs
shows how to queue jobs for the worker pool to process, then start a worker to go and run them.
Some important notes:
Workers would usually be on a separate machine from the code queueing the jobs, this is purely to give an example.
More workers can be added at any time, and will start picking up jobs off the queue immediately.
publicclassProgram{publicstaticasyncTaskMain(string[]args){varredisConnectionString="127.0.0.1:6379";// Create a Task Client connected to RedisvartaskClient=newTaskClient(TaskQueue.Redis(redisConnectionString));// Queue up a Sample JobawaittaskClient.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.awaittaskClient.Listen();}privatestaticvoidSampleJobFunction(objectvalue){Console.WriteLine(value.ToString());}}
Read the Docs for more details.
About
Easy C# API for Distributed Background Tasks/Jobs for .NET Core.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.