Skip to content

PuneetChandel/workerpattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

workerpattern

worker pattern using rabbit MQ, celery and MongoDB

  1. Install RabbitMQ
  2. setup rabbitMQ for celery
    http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html
  • create user and set permissions for virtual host

  • create virtual host

    abbitmqctl add_user puneet welcome1
    rabbitmqctl add_vhost feedvhost
    rabbitmqctl set_user_tags puneet dev
    rabbitmqctl set_permissions -p feedvhost puneet "." "." ".*"

  • start rabbit mq server : rabbitmq-server

  • to monitor http://localhost:15672 , can create a user with monitor role to monitor queues

  1. create virtual env for your project and install celery,pymongo,PyYAML
    virtualenv vworkpatt
    source source vworkpatt/bin/activate
    pip install celery pymongo PyYAML

  2. If you are using pyCharm use the virtual env just created

  3. run rabbit mq : rabbitmq-server

  4. rn mongodb : mongod

  5. start celery :
    celery -A tasks.feedtask.celery worker -Q usage_queue --loglevel=info

  6. start flask app
    python3 app.py

Post Feeds : http://0.0.0.0:4001/Usagefeed

Get job status : http://0.0.0.0:4001/Usagefeed/261d6625-d18e-4945-85da-8f89ff388cf6

9 . freeze env to generate requirements.txt
pip freeze > requirements.txt

  1. To run celery with concurrency option
    celery -A tasks.feedtask.celery worker -Q usage_queue --loglevel=info --concurrency=20

  2. for scaling
    celery -A tasks.feedtask.celery worker -Q usage_queue --loglevel=info --autoscale=10,3

References:
http://flask.pocoo.org/docs/0.11/patterns/celery/
http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html

About

worker pattern using rabbit MQ and celery,mongo DB

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages