General purpose Python framework for writing highly scalable applications
Project description
General purpose Python framework for writing highly scalable applications.
About
A typical application consists of several modules. Each module has its own process, stores a pidfile in ‘tmp/pids’, and has a logfile in ‘logs’.
A RPC protocol is implemented on top of zeromq in order to allow for inter-module communication. Modules have an auto-adjustable number of workers in order to cope with a high number of requests. These rpc requests will block until that module becomes available. Read more about zeromq at http://zguide.zeromq.org/
Each module consists of several gevent greenlets. A basic module will already contain a few greenlets that handle incoming rpc requests. You can spawn additional greenlets for your own needs. Read more about gevent at http://www.gevent.org/
Tasks
You can manage and debug your modules using built-in tasks. Type ‘cake’ at a bash prompt when inside your project to see available tasks and what they do. You can also define your own taks.
Commands
To create a new project:
$ pyscale new <name>
To generate a new module:
$ pyscale generate <name>
To start, stop, debug, view logs and more check out available cake tasks:
$ cake $ cake start $ cake stop $ cake status $ cake log $ cake console
Usage
To execute an rpc request on another module:
self.sock('modname').method(*args, **kwargs)
You can also use properties, and chain requests:
self.sock('modname').prop.method()
You can also issue requests on all available modules:
self.multisock('*').method()
To spawn another greenlet in a module either use the ‘job’ decorator or:
self.jobs.spawn(func)
To debug your application use logs and the console.
Requirements
- System Dependencies:
zeromq
atd
- Python Dependencies:
pyzmq
gevent
gevent_zeromq
cake
argparse
jinja2
nose
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyscale-0.1.1.tar.gz
.
File metadata
- Download URL: pyscale-0.1.1.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a7cd9ba3b489480795cd61161092c77d1fa13bea4f831b7294d23862d32fa44 |
|
MD5 | 4fe5a91e64ebfc959702d6366a667c79 |
|
BLAKE2b-256 | 7f0b16ff80718621dce276999deec2c39743b78e533d138d82c4bfc64b63c4a6 |