All Projects → Attumm → meesee

Attumm / meesee

Licence: MIT license
Task queue, Long lived workers for work based parallelization, with processes and Redis as back-end. For distributed computing.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to meesee

Awesome Distributed Systems
Awesome list of distributed systems resources
Stars: ✭ 512 (+3557.14%)
Mutual labels:  distributed-computing, distributed
rqmonitor
Flask based more dynamic and actionable frontend dashboard for monitoring Redis Queue 👩🏿‍💻 http://python-rq.org
Stars: ✭ 152 (+985.71%)
Mutual labels:  workers, task-queue
Hashtopolis
A Hashcat wrapper for distributed hashcracking
Stars: ✭ 835 (+5864.29%)
Mutual labels:  distributed-computing, distributed
server
Hashtopolis - A Hashcat wrapper for distributed hashcracking
Stars: ✭ 954 (+6714.29%)
Mutual labels:  distributed-computing, distributed
Dingo
An easy-to-use, distributed, extensible task/job queue framework for #golang
Stars: ✭ 289 (+1964.29%)
Mutual labels:  workers, task-queue
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+33200%)
Mutual labels:  distributed-computing, distributed
theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (+92.86%)
Mutual labels:  workers, task-queue
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (+100%)
Mutual labels:  distributed-computing, distributed
gruff
A basic worker pool manager for Erlang to showcase gen_pnet.
Stars: ✭ 23 (+64.29%)
Mutual labels:  workers, worker-pool
celery.node
Celery task queue client/worker for nodejs
Stars: ✭ 164 (+1071.43%)
Mutual labels:  workers, task-queue
distex
Distributed process pool for Python
Stars: ✭ 101 (+621.43%)
Mutual labels:  distributed-computing, task-queue
Rq
Simple job queues for Python
Stars: ✭ 8,065 (+57507.14%)
Mutual labels:  workers, task-queue
cre
common runtime environment for distributed programming languages
Stars: ✭ 20 (+42.86%)
Mutual labels:  distributed-computing, worker-pool
Diplomat
A HTTP Ruby API for Consul
Stars: ✭ 358 (+2457.14%)
Mutual labels:  distributed-computing, distributed
phylanx
An Asynchronous Distributed C++ Array Processing Toolkit
Stars: ✭ 71 (+407.14%)
Mutual labels:  distributed-computing, distributed
Js Spark
Realtime calculation distributed system. AKA distributed lodash
Stars: ✭ 187 (+1235.71%)
Mutual labels:  distributed-computing, distributed
tasq
A simple task queue implementation to enqeue jobs on local or remote processes.
Stars: ✭ 83 (+492.86%)
Mutual labels:  distributed-computing, task-queue
zmq
ZeroMQ based distributed patterns
Stars: ✭ 27 (+92.86%)
Mutual labels:  workers, distributed-computing
Flower
Real-time monitor and web admin for Celery distributed task queue
Stars: ✭ 5,036 (+35871.43%)
Mutual labels:  workers, task-queue
taskinator
A simple orchestration library for running complex processes or workflows in Ruby
Stars: ✭ 25 (+78.57%)
Mutual labels:  workers, distributed-computing

Meesee

Build Status

Task queue, Long lived workers process parallelization, with Redis as backend. The project is used in production by three different companies. There are Meesee instances that have been running without maintenance or restarts for more than one year.

Since the scope of the project is laser focussed on providing the following usecases. There are no outstanding feature requests, the project is stable and no code are needed at the moment. For feature request or additional information, an issue could be raised. For examples on how to use Meesee there are examples available.

  1. Should be able to run for long periods, without maintenance or restarts.
  2. Restarting the service for maintenance or deployments, should not lead to missing messages.
  3. Should be reasonable fast and minimal amount of memory overhead for client and Redis instance.
  4. Should be able to schedule messages when workers are offline during deployment.
  5. Should not skip messages during certain scenario's such as heavy load.
  6. Should try to be as simple as possible to use, without a big learning curve. Distributed computing is hard enough by itself.

Examples

Create my_func that will

  1. print starting message.
  2. Sleep 1 second.
  3. print a ending message.

Let's start 10 of those.

import time
from meesee import startapp

def my_func(item, worker_id):
    print("hello, look at me")
    time.sleep(1)
    print('finished item', locals())


startapp(my_func, workers=10)

Open another terminal, Let's produce some tasks

from meesee import RedisQueue, config

def produce(items):
    r = RedisQueue(**config)
    for i in range(items):
        r.send(i)

produce(10)

Great, the placement of both scripts can be on any machine with connectivity to the redis instance.

Installing

Create a virtualenv for your project. Install meesee:

$ . /path/to/virtualenv/bin/activate
$  pip install meesee

Prerequisites

Redis instance

For Docker

$ docker run --name some-redis -d redis

For Debian, Ubuntu

$ sudo apt-get install redis-server

For Centos, Red Hat

$ sudo yum install redis

Authors

  • Melvin Bijman
  • Mark Moes

License

This project is licensed 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].