All Projects → bitleak → Lmstfy

bitleak / Lmstfy

Licence: mit
Implements task queue in Golang which based on Redis storage

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Lmstfy

Asynq
Asynq: simple, reliable, and efficient distributed task queue in Go
Stars: ✭ 934 (+150.4%)
Mutual labels:  redis, task-queue
Flower
Real-time monitor and web admin for Celery distributed task queue
Stars: ✭ 5,036 (+1250.13%)
Mutual labels:  redis, task-queue
Taskq
Golang asynchronous task/job queue with Redis, SQS, IronMQ, and in-memory backends
Stars: ✭ 555 (+48.79%)
Mutual labels:  redis, task-queue
Rq
Simple job queues for Python
Stars: ✭ 8,065 (+2062.2%)
Mutual labels:  redis, task-queue
Pytask Io
Python Async Task Queue
Stars: ✭ 81 (-78.28%)
Mutual labels:  redis, task-queue
Flask Redis Queue
Example of how to handle background processes with Flask, Redis Queue, and Docker
Stars: ✭ 163 (-56.3%)
Mutual labels:  redis, task-queue
Django Rq
A simple app that provides django integration for RQ (Redis Queue)
Stars: ✭ 1,361 (+264.88%)
Mutual labels:  redis, task-queue
Huey
a little task queue for python
Stars: ✭ 3,761 (+908.31%)
Mutual labels:  redis, task-queue
Predis Async
Asynchronous PHP client library for Redis built on top of ReactPHP
Stars: ✭ 354 (-5.09%)
Mutual labels:  redis
Ratelimitj
A Java library for Rate-Limiting, providing extensible storage and application framework adaptors.
Stars: ✭ 362 (-2.95%)
Mutual labels:  redis
Swapdb
https://github.com/JingchengLi/swapdb/wiki
Stars: ✭ 355 (-4.83%)
Mutual labels:  redis
Stacker
Stacker - The environment for local web development, ready for use.
Stars: ✭ 356 (-4.56%)
Mutual labels:  redis
Full Stack Notes
全栈工程师手册
Stars: ✭ 366 (-1.88%)
Mutual labels:  redis
Ssm booksystem
ssm demo,ssm详细教程,SSM简明教程:简单的十步教你搭建人生第一个SSM框架[ SSM框架整合教程(spring+spring mvc+mybatis+redis+maven+idea+bootstrap) ]
Stars: ✭ 355 (-4.83%)
Mutual labels:  redis
Spring Boot Projects
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。
Stars: ✭ 4,022 (+978.28%)
Mutual labels:  redis
Php Practice
🌹 一天一点点,积少成多...
Stars: ✭ 351 (-5.9%)
Mutual labels:  redis
Kache
A simple in memory cache written using go
Stars: ✭ 349 (-6.43%)
Mutual labels:  redis
Redislock
Simplified distributed locking implementation using Redis
Stars: ✭ 370 (-0.8%)
Mutual labels:  redis
Rebridge
A transparent Javascript interface to Redis.
Stars: ✭ 367 (-1.61%)
Mutual labels:  redis
Phper
一个PHPer的升级之路
Stars: ✭ 362 (-2.95%)
Mutual labels:  redis
lmstfy_logo

LMSTFY(Let Me Schedule Task For You)

Build Status Go Report Card codecov GitHub release GitHub release date LICENSE GoDoc

lmstfy(pronounce /'lam.si.fai/) is a simple task queue (or job queue) service based on the Redis storage, providing the following features:

  • basic job queue primitives: PUBLISH, CONSUME and DELETE via HTTP API
  • support extra lifecycle management of jobs:
    • job TTL (time-to-live)
    • job delay trigger (at second granularity)
    • job auto-retry
    • dead letter
  • namespace/queue level metrics
  • token consume/produce rate limit

lmstfy itself doesn't handle data storage, it delegates the storage to the Redis or Redis Sentinel currently (a file based storage backend is under implementing). So data integrity and durability is in the hand of redis, we use AOF and replication on our production env to ensure that.

Playing with Lmstfy

If you just want to have a try, the docker-compose was highly recommended but DON'T use it in production. We would use docker-compose to setup and play with Lmstfy.

  • Running the Redis and Lmstfy server
# run the lmstfy and redis, server would listen on localhost:7777
# and admin port on localhost:7778.

% cd docker && docker-compose -p test-lmstfy up -d
  • Create a new namespace and token
% curl -XPOST -d "description=test namesapce" "http://127.0.0.1:7778/token/test-ns" 
  • Publish a new message
# The queue would be dynamic created, so feel free to publish the message to any queues.
# Below http request would create a job with delay = 1s, ttl = 3600s and tries = 16.

% curl -XPUT -H "X-token:{ENTER YOUR TOKEN}" "http://127.0.0.1:7777/api/test-ns/test-queue?delay=1&ttl=3600&tries=16" 
  • Consume a job from the queue
% curl -H "X-token:{ENTER YOUR TOKEN}" "http://127.0.0.1:7777/api/test-ns/test-queue?ttr=30&timeout=2" 
  • ACK the job
% curl -i -XDELETE -H "X-token:{ENTER YOUR TOKEN}" "http://127.0.0.1:7777/api/test-ns/test-queue/job/{YOUR JOB ID}" 

Building Lmstfy

It is as simple as:

% make

The application binary would be generated at _build dir, you can run it on the Running Lmstfy section.

Running Lmstfy

You must setup the Redis first and configure it in the lmstfy config file before running:

_build/lmstfy-server -c config/demo-conf.toml

Internal

Detailed internal implementation looks like:

lmstfy internal

Client drivers

Documentation

License

LMSTFY is under the MIT license. See the LICENSE file for 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].