All Projects → fastlane-queue → fastlane

fastlane-queue / fastlane

Licence: MIT license
Fastlane is a redis and docker based queueing service.

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to fastlane

celery.node
Celery task queue client/worker for nodejs
Stars: ✭ 164 (+241.67%)
Mutual labels:  queue, worker, task-manager
PySiQ
A Python Simple Queue system for your apps
Stars: ✭ 23 (-52.08%)
Mutual labels:  queue, task-manager
rsmq-promise
Promise interface for RSMQ
Stars: ✭ 28 (-41.67%)
Mutual labels:  queue, worker
Sidekiq Job Php
Push and schedule jobs to Sidekiq from PHP
Stars: ✭ 34 (-29.17%)
Mutual labels:  queue, worker
wtsqs
Simplified Node AWS SQS Worker Wrapper
Stars: ✭ 18 (-62.5%)
Mutual labels:  queue, worker
Ytask
YTask is an asynchronous task queue for handling distributed jobs in golang(go异步任务框架)
Stars: ✭ 121 (+152.08%)
Mutual labels:  queue, worker
Arq
Fast job queuing and RPC in python with asyncio and redis.
Stars: ✭ 695 (+1347.92%)
Mutual labels:  queue, worker
leek
Celery Tasks Monitoring Tool
Stars: ✭ 77 (+60.42%)
Mutual labels:  queue, worker
Workq
Job server in Go
Stars: ✭ 1,546 (+3120.83%)
Mutual labels:  queue, worker
Tasktiger
Python task queue using Redis
Stars: ✭ 1,053 (+2093.75%)
Mutual labels:  queue, worker
Laravel Elasticbeanstalk Queue Worker
Stars: ✭ 48 (+0%)
Mutual labels:  queue, worker
Aint Queue
🚀 An async-queue library built on top of swoole, flexable multi-consumer, coroutine supported. 基于 Swoole 的一个异步队列库,可弹性伸缩的工作进程池,工作进程协程支持。
Stars: ✭ 143 (+197.92%)
Mutual labels:  queue, worker
Simpleue
PHP queue worker and consumer - Ready for AWS SQS, Redis, Beanstalkd and others.
Stars: ✭ 124 (+158.33%)
Mutual labels:  queue, worker
qless-php
PHP Bindings for qless
Stars: ✭ 25 (-47.92%)
Mutual labels:  queue, worker
yii2-mailqueue
Yii2 mail queue component for yii2-swiftmailer.
Stars: ✭ 15 (-68.75%)
Mutual labels:  queue
Thread
type safe multi-threading made easier
Stars: ✭ 34 (-29.17%)
Mutual labels:  worker
cloudflare-worker-router
A super lightweight router (1.3K) with middleware support and ZERO dependencies for CloudFlare Workers.
Stars: ✭ 144 (+200%)
Mutual labels:  worker
Data-Structure-Algorithm-Programs
This Repo consists of Data structures and Algorithms
Stars: ✭ 464 (+866.67%)
Mutual labels:  queue
logtoes
Demo of Asynchronous pattern (worker) using Python Flask & Celery
Stars: ✭ 49 (+2.08%)
Mutual labels:  worker
PyRSMQ
Python Implementation of Redis Simple Message Queue Algorithm
Stars: ✭ 35 (-27.08%)
Mutual labels:  queue

fastlane

github repo Build Status Codacy Badge Docs Codacy Badge BCH compliance Issues

demo

fastlane service

fastlane is a redis-based queueing service that outsmarts everyone else by using containers.

More seriously, though, fastlane allows you to easily implement new workers in the form of containers.

Instead of the tedious, repetitive work of yesteryear where you had to implement a worker in language X or Y, you just spin a new container with all the dependencies you require already previously installed, and instruct fastlane to run a command in that container. Bang! Instant Super-Powered Workers!

Features

  • Ad-Hoc execution of jobs (run job right now)
  • Scheduled execution of jobs (run job next sunday at 6am, or run in 10 minutes from now);
  • Crontab execution of jobs (run job at */10 * * * * - every ten minutes);
  • Allows job details to be updated;
  • API to retrieve tasks, /tasks;
  • API to retrieve task details, /tasks/my-task (<taskUrl>);
  • API to retrieve job details, <taskUrl>/jobs/<jobId> (<jobUrl>);
  • API to stop running job (<jobUrl>/stop);
  • API to retry job (<jobUrl>/retry);
  • API to get logs(<jobUrl>/logs), stdout (<jobUrl>/stdout) and stderr (<jobUrl>/stderr) for last execution in jobs;
  • Job log output streaming using WebSockets (ws://<jobUrl>/ws) and <jobUrl>/stream;
  • API to retrieve execution details, <jobUrl>/executions/<executionId> (<executionUrl>);
  • API to stop execution, <executionUrl>/stop;
  • API to get logs(<executionUrl>/stdout), stdout (<executionUrl>/stdout) and stderr (<executionUrl>/stderr) for execution;
  • Job execution log output streaming using WebSockets (ws://<executionUrl>/ws) and <executionUrl>/stream;
  • Additional Job Metadata (useful for webhooks);
  • Configurable retries per job;
  • Configurable exponential back-off for retries and failures in monitoring of jobs;
  • Configurable hard timeout for each execution;
  • E-mail subscription to tasks;
  • Healthcheck of the MongoDB and Redis Connections;
  • Web hooks on job start;
  • Web hooks on job completion;
  • Redact any env that contains blacklisted keywords;
  • Exponential back-off parameters per job;
  • Self-healing handling of interrupted jobs;
  • Self-healing handling of unscheduled periodical jobs;
  • Workers should handle SIGTERM and exit gracefully;
  • Docker Container Runner (with docker host pool);
  • Docker Pool per task name (Regular Expressions);
  • Rename docker containers after processing their details;
  • Command to prune processed containers;
  • Routes to remove/put back docker host in job balancing;
  • Docker SSL connections;
  • Circuit breaking when docker host is unavailable;
  • Container Environment Variables per Job;
  • Configurable global limit for number of running jobs per task name (Regular Expressions);
  • Limit of concurrent job executions per task;
  • Kubernetes Container Runner;
  • MongoDB Task and Job Storage;
  • Structured Logging;
  • Monitoring of job completion;
  • Job Expiration;
  • Status Page with details on the farm status (executors, scheduled tasks and queue sizes);
  • Error handling mechanism (Sentry built-in, extensible)
  • Per-job Error handling mechanism (Sentry built-in, extensible)
  • Usage metrics (extensible);
  • Support Redis and Redis Sentinel;
  • Support Redis Cluster;
  • Comprehensive test coverage;
  • CORS headers in every API request (configurable);
  • Basic Auth support;
  • gzip all JSON responses for the API (for requests that accept gzip);
  • Store IP address of enqueued job for auditing (X-Real-IP, then X-Forwarded-For, then request.addr);
  • Admin to inspect tasks and jobs.

Getting started

Getting fastlane up and running is very simple if you have both docker and docker-compose installed.

We'll use a sample docker compose that gets all our requirements up (ps: this docker-compose file runs Docker In Docker and requires privileged mode to run):

$ curl https://raw.githubusercontent.com/fastlane-queue/fastlane/master/docker-compose-sample.yml | docker-compose -f - up -d

Starting fastlane...
Creating fastlane_mongo_1       ... done
Creating fastlane_docker-host_1 ... done
Creating fastlane_redis_1       ... done
Creating fastlane_fastlane_1    ... done
fastlane started successfully.

After that you can start using fastlane. For more details on getting started, read the following page.

Documentation

Read more about fastlane at read the docs.

Contributing

Logo was created by Artur Sousa.

License

Fastlane is licensed under the MIT license.

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