All Projects → brthor → Gofer.net

brthor / Gofer.net

Licence: mit
Easy C# API for Distributed Background Tasks/Jobs for .NET Core.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Gofer.net

Raft.net
Implementation of RAFT distributed consensus algorithm among TCP Peers on .NET / .NETStandard / .NETCore / dotnet
Stars: ✭ 112 (-70.76%)
Mutual labels:  netstandard, dotnet-core, netcore
Awesome Microservices Netcore
💎 A collection of awesome training series, articles, videos, books, courses, sample projects, and tools for Microservices in .NET Core
Stars: ✭ 865 (+125.85%)
Mutual labels:  aspnet, dotnet-core, distributed-systems
Colore
A powerful C# library for Razer Chroma's SDK
Stars: ✭ 121 (-68.41%)
Mutual labels:  netstandard, dotnet-core, netcore
Dnczeus
DncZeus 是一个基于ASP.NET Core 3 + Vue.js(iview-admin) 的前后端分离的通用后台权限(页面访问、操作按钮控制)管理系统框架。后端使用.NET Core 3 + Entity Framework Core构建,UI则是目前流行的基于Vue.js的iView(iview-admin)。项目实现了前后端的动态权限管理和控制以及基于JWT的用户令牌认证机制,让前后端的交互更流畅。码云镜像:https://gitee.com/rector/DncZeus 。演示地址(demo):
Stars: ✭ 1,104 (+188.25%)
Mutual labels:  aspnet, dotnet-core, netcore
Fluentdispatch
🌊 .NET Standard 2.1 framework which makes easy to scaffold distributed systems and dispatch incoming load into units of work in a deterministic way.
Stars: ✭ 152 (-60.31%)
Mutual labels:  netstandard, netcore, distributed-systems
Opentouryo
”Open棟梁”は、長年の.NETアプリケーション開発実績にて蓄積したノウハウに基づき開発した.NET用アプリケーション フレームワークです。 (”OpenTouryo” , is an application framework for .NET which was developed using the accumulated know-how with a long track record in .NET application development.)
Stars: ✭ 233 (-39.16%)
Mutual labels:  aspnet, netstandard, netcore
DotNetDynamicInjector
💉 Dynamically reference external dlls without the need to add them to the project. Leave your project with low dependency and allowing specific dlls according to your business rule or database parameters.
Stars: ✭ 18 (-95.3%)
Mutual labels:  netcore, netstandard
AmiClient
Modern .NET Standard client for accessing the Asterisk AMI protocol using async/await and Reactive Extensions (Rx)
Stars: ✭ 30 (-92.17%)
Mutual labels:  netcore, netstandard
Cosmos.Identity
A Cosmos storage provider for ASP.NET Core Identity.
Stars: ✭ 26 (-93.21%)
Mutual labels:  netcore, netstandard
EPPlus4PHP
an easy-to-use excel library for php project which is compiled with peachpie. NOT FOR THE COMMON PHP PROJECT!
Stars: ✭ 15 (-96.08%)
Mutual labels:  netcore, netstandard
Decor.NET
A simple way to decorate a class with additional functionality using attributes.
Stars: ✭ 29 (-92.43%)
Mutual labels:  netcore, netstandard
MyDAL
The fastest and best ORM lite on C# for MySQL ! -- 友好, 轻量, 极致性能, 无任何第三方依赖, 持续演进~~
Stars: ✭ 32 (-91.64%)
Mutual labels:  netcore, netstandard
SimCaptcha
✅ 一个简单易用的点触验证码 (前端+后端)
Stars: ✭ 49 (-87.21%)
Mutual labels:  netcore, netstandard
dotnet
.NET Community Toolkit is a collection of helpers and APIs that work for all .NET developers and are agnostic of any specific UI platform. The toolkit is maintained and published by Microsoft, and part of the .NET Foundation.
Stars: ✭ 865 (+125.85%)
Mutual labels:  netcore, netstandard
ActiveLogin.Identity
Parsing and validation of Swedish identities such as Personal Identity Number (svenskt personnummer) in .NET.
Stars: ✭ 51 (-86.68%)
Mutual labels:  netcore, netstandard
AvroConvert
Apache Avro serializer for .NET
Stars: ✭ 44 (-88.51%)
Mutual labels:  netcore, netstandard
AlphaVantage.Net
.Net client library for Alpha Vantage API
Stars: ✭ 65 (-83.03%)
Mutual labels:  netcore, netstandard
onvif-discovery
C# .NetStandard 2.0 library to discover ONVIF compliant devices
Stars: ✭ 29 (-92.43%)
Mutual labels:  netcore, netstandard
Mockqueryable
Moking Entity Framework Core operations such ToListAsync, FirstOrDefaultAsync etc
Stars: ✭ 281 (-26.63%)
Mutual labels:  dotnet-core, netcore
WebGPU.NET
This repository contains low-level bindings for WebGPU used in WaveEngine.
Stars: ✭ 35 (-90.86%)
Mutual labels:  dotnet-core, netstandard

Gofer.NET: Easy distributed tasks/jobs for .NET Core

Build Status Nuget Version Number Join the chat at https://gitter.im/Gofer-NET/Lobby

Documentation

Read the Docs

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].