Skip to content

Instantly share code, notes, and snippets.

@140am
Created November 14, 2012 23:44
Show Gist options
  • Save 140am/4075658 to your computer and use it in GitHub Desktop.
Save 140am/4075658 to your computer and use it in GitHub Desktop.
first butler framework example (v0.2)

Installation

virtualenv env; source env/bin/activate
easy_install butler

Use Examples

Save the attached .py files (router.py / worker.py / client.py)

  1. Start Router python router.py

  2. Start Worker (or multiple instances of it) python worker.py

  3. Send RPC request by starting Client python client.py

import butler
import time
import random
import logging
logging.basicConfig(
level = logging.INFO,
format = '%(asctime)-24s %(threadName)-11s %(levelname)-8s %(message)s'
)
log = logging.getLogger(__name__)
client = butler.Client('tcp://127.0.0.1:5555').rpc('api.test')
time_s = time.time()
response = client.hello('world')
log.info('RPC response [%.2fs]: %s' % (
(time.time() - time_s), response
))
import butler
import logging
logging.basicConfig(
level = logging.DEBUG,
format = '%(asctime)-24s %(threadName)-11s %(levelname)-8s %(message)s'
)
log = logging.getLogger(__name__)
router = butler.Router()
router.frontend.bind("tcp://127.0.0.1:5555")
router.backend.bind("tcp://127.0.0.1:5556")
router.run()
import butler
import os
import logging
logging.basicConfig(
level = logging.DEBUG,
format = '%(asctime)-24s %(threadName)-11s %(levelname)-8s %(message)s'
)
log = logging.getLogger(__name__)
def test_response(argument):
return str('"Hello %s" response from PID %s' % (argument, os.getpid()))
worker = butler.Service('tcp://127.0.0.1:5556', 'api.test')
worker.register_function(test_response, 'hello')
worker.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment