Gofer.NET alternatives and similar packages
Based on the "Queue" category.
Alternatively, view Gofer.NET alternatives based on common mentions on social networks and blogs.
-
Hangfire
An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required -
CAP
Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern -
Confluent's .NET Client for Apache KafkaTM
Confluent's Apache Kafka .NET client -
NServiceBus
Build, version, and monitor better microservices with the most powerful service platform for .NET -
RabbitMQ.NET
RabbitMQ .NET client for .NET Standard 2.0+ and .NET 4.6.1+ -
CQRSlite
A lightweight framework to help creating CQRS and Eventsourcing applications in C# -
Kafka Client
.Net implementation of the Apache Kafka Protocol that provides basic functionality through Producer/Consumer classes. -
RestBus
Easy, Service Oriented, Asynchronous Messaging and Queueing for .NET -
SlimMessageBus
Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers. -
Silverback
Silverback is a simple but feature-rich message bus for .NET core (it currently supports Kafka, RabbitMQ and MQTT). -
Enexure.MicroBus
MicroBus is a simple in process Mediator for .NET
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Gofer.NET or a related project?
README
Gofer.NET: Easy distributed tasks/jobs for .NET Core
Documentation
What is this?
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.
Getting Started
Install the dotnet cli.
We recommend using the dotnet cli to get started, but it's not a necessity.
The dotnet cli is part of the .NET Core SDK.
Start a Redis instance.
We recommend using docker 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
Create a project.
Open up a terminal and create a new console project to get started.
$ mkdir myProject && cd myProject
$ dotnet new console
Add the Gofer.NET NuGet package.
$ dotnet add package Gofer.NET --version 1.0.0-*
Queue up some jobs.
This example Program.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.
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());
}
}
Read the Docs for more details.