All Projects → rusty-celery → Rusty Celery

rusty-celery / Rusty Celery

Licence: apache-2.0
🦀 Rust implementation of Celery for producing and consuming background tasks

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rusty Celery

Flower
Real-time monitor and web admin for Celery distributed task queue
Stars: ✭ 5,036 (+1972.43%)
Mutual labels:  redis, rabbitmq, celery
Node Celery
Celery client for Node.js
Stars: ✭ 648 (+166.67%)
Mutual labels:  redis, rabbitmq, celery
Fastapi Celery
Minimal example utilizing fastapi and celery with RabbitMQ for task queue, Redis for celery backend and flower for monitoring the celery tasks.
Stars: ✭ 154 (-36.63%)
Mutual labels:  redis, rabbitmq, celery
Springbootlearning
《Spring Boot教程》源码
Stars: ✭ 2,065 (+749.79%)
Mutual labels:  redis, rabbitmq
Chain
链喵 CMDB 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Stars: ✭ 240 (-1.23%)
Mutual labels:  redis, celery
Docker Compose
一些基础服务的docker-compose配置文件,方便在一台新电脑上快速开始工作
Stars: ✭ 163 (-32.92%)
Mutual labels:  redis, rabbitmq
Enqueue Dev
Message Queue, Job Queue, Broadcasting, WebSockets packages for PHP, Symfony, Laravel, Magento. DEVELOPMENT REPOSITORY - provided by Forma-Pro
Stars: ✭ 1,977 (+713.58%)
Mutual labels:  redis, rabbitmq
Dailyfresh B2c
dailyfresh mall based on B2C model
Stars: ✭ 177 (-27.16%)
Mutual labels:  redis, celery
Ketchup
ketchup (番茄酱) 是一个基于dotnet core的微服务框架。
Stars: ✭ 170 (-30.04%)
Mutual labels:  redis, rabbitmq
Messagebus
A MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7
Stars: ✭ 178 (-26.75%)
Mutual labels:  redis, rabbitmq
Zend Diagnostics
Universal set of diagnostic tests for PHP applications.
Stars: ✭ 192 (-20.99%)
Mutual labels:  redis, rabbitmq
Visual Chatbot
☁️ 👀 💬 Visual Chatbot
Stars: ✭ 161 (-33.74%)
Mutual labels:  redis, rabbitmq
Stove
Domain Driven Design oriented application framework, meets CRUD needs
Stars: ✭ 160 (-34.16%)
Mutual labels:  redis, rabbitmq
Docker Flask Celery Redis
Docker-Compose template for orchestrating a Flask app with a Celery queue using Redis
Stars: ✭ 165 (-32.1%)
Mutual labels:  redis, celery
Spring Boot Examples
个人学习 SpringBoot2.x 写的一些示例程序,目前正在持续更新中.....
Stars: ✭ 159 (-34.57%)
Mutual labels:  redis, rabbitmq
Seckill
基于Spring Boot的高性能秒杀系统
Stars: ✭ 171 (-29.63%)
Mutual labels:  redis, rabbitmq
Ebook Chat App Spring Websocket Cassandra Redis Rabbitmq
Pro Java Clustering and Scalability: Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ
Stars: ✭ 186 (-23.46%)
Mutual labels:  redis, rabbitmq
Javacollection
Java开源项目之「自学编程之路」:学习指南+面试指南+资源分享+技术文章
Stars: ✭ 2,957 (+1116.87%)
Mutual labels:  redis, rabbitmq
Django2 dailyfresh
dailyfresh电商项目,替换django框架为2.X并重构,美化了下后台管理页面,提供docker版本,该项目包含了实际开发中的电商项目中大部分的功能开发和知识点实践, 是一个非常不错的django学习项目,同时也记录在替换框架中遇到的坑,希望对各位的学习有所帮助。
Stars: ✭ 212 (-12.76%)
Mutual labels:  redis, celery
Springboot
用springboot + springmvc + mybatis + maven搭建成框架,基于Jersey, Swagger,SwaggerUi的restful API
Stars: ✭ 157 (-35.39%)
Mutual labels:  redis, rabbitmq



A Rust implementation of Celery for producing and consuming asynchronous tasks with a distributed message queue.


Build Coverage Status License Crates Docs Help wanted


We welcome contributions from everyone regardless of your experience level with Rust. For complete beginners, see HACKING_QUICKSTART.md.

If you already know the basics of Rust but are new to Celery, check out the Rusty Celery Book or the original Python Celery Project.

Quick start

Define tasks by decorating functions with the task attribute.

use celery::prelude::*;

#[celery::task]
fn add(x: i32, y: i32) -> TaskResult<i32> {
    Ok(x + y)
}

Create an app with the app macro and register your tasks with it:

let my_app = celery::app!(
    broker = AMQPBroker { std::env::var("AMQP_ADDR").unwrap() },
    tasks = [add],
    task_routes = [
        "*" => "celery",
    ],
).await?;

Then send tasks to a queue with

my_app.send_task(add::new(1, 2)).await?;

And consume tasks as a worker from a queue with

my_app.consume().await?;

Examples

The examples/ directory contains:

Prerequisites

If you already have an AMQP broker running you can set the environment variable AMQP_ADDR to your broker's URL (e.g., amqp://localhost:5672//, where the second slash at the end is the name of the default vhost). Otherwise simply run the helper script:

./scripts/brokers/amqp.sh

This will download and run the official RabbitMQ image (RabbitMQ is a popular AMQP broker).

Run the examples

Run Rust Celery app

You can consume tasks with:

cargo run --example celery_app consume

And you can produce tasks with:

cargo run --example celery_app produce

Run Python Celery app

Similarly, you can consume or produce tasks from Python by running

python examples/celery_app.py consume

or

python examples/celery_app.py produce

You'll need to have Python 3 installed, along with the requirements listed in the requirements.txt file.

Run Rust Beat app

You can start the Rust beat with:

cargo run --example beat_app

And then you can consume tasks from Rust or Python as explained above.

Road map and current state

✅ = Supported and mostly stable, although there may be a few incomplete features.
⚠️ = Partially implemented and under active development.
🔴 = Not supported yet but on-deck to be implemented soon.

Core

Status Tracking
Protocol ⚠️
Producers
Consumers
Brokers
Beat
Backends 🔴
Baskets 🔴

Brokers

Status Tracking
AMQP
Redis

Backends

Status Tracking
RPC 🔴
Redis 🔴

Team

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].