Skip to content
forked from bitleak/lmstfy

Implements task queue in Golang which based on Redis storage

License

Notifications You must be signed in to change notification settings

Joker-hh/lmstfy

 
 

Repository files navigation

Let Me Schedule Tasks For You (lmstfy)

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

lmstfy(pronounce /'lam.si.fai/) is a simple task queue (or job queue) service, 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.

Who use lmstfy

Meitu

SDK for lmstfy

Build and Run

To build the server binary:

$ make # target file would be inside _build dir

To run the server:

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

To start in developing mode:

./_build/lmstfy-server -c config/demo-conf.toml -bt debug -sv

You can use ./scripts/token-cli to manage the namespace and token

DOCs


Dashboard

Internal

Detailed internal implementation looks like:

job flow

About

Implements task queue in Golang which based on Redis storage

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 98.0%
  • Other 2.0%