github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

square-circle-triangle / airbrush

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 31
    • 2
  • Source
  • Commits
  • Network (2)
  • Issues (0)
  • Downloads (0)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (1)
    • master ✓
  • Tags (0)
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

Airbrush is a distributed processing server using memcache to queue jobs and communicate results back to the client once they've been processed — Read more

  cancel

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

flipped the clipping_required method around the other way and switched out 
the portrait/landscape blocks for a simple comparison on the ratio 
square-circle-triangle (author)
Sun Nov 30 13:04:26 -0800 2008
commit  cd51d2af20e6360b4cac4db8dc9b392e010b97f9
tree    9a68cf5a55315b092a023f34944bf502c439ea0e
parent  744b482ef725e49c06865bd301888e634625c07f
airbrush /
name age
history
message
file .gitignore Loading commit data...
file History.txt
file LICENSE
file Manifest.txt
file README.txt
file Rakefile
directory bin/
directory config/
directory extras/
directory lib/
directory log/
directory script/
file setup.rb
directory spec/
directory tasks/
directory website/
README.txt
= AIRBRUSH

== DESCRIPTION

Airbrush is a distributed processing host for performing arbitrary tasks on a particular server.
Currently it supports using MemCache as the transport queue to communicate between an airbrush
server issuing a command and the server processing it.

Due to the distributed nature of MemCache, multiple Airbrush servers can be started across
many hosts, and each will monitor the MemCache incoming queue for results independently and
atomically.

Remote jobs are performed via a 'processor' installed as part of Airbrush, and is currently
configured in code in the server.rb source file (look for the handler definition/configuration). A
future enhancemnt could support automatic processor registration and/or a plugin architecture.

Actual communication between client and server via MemCache is done via a hash, that includes
a :command value, optional :args value and a uniqie :id value. The :id value is used to uniquely
identify this job, :command names the actual command to run on the remote server, and :params
is a hash of parameters that are passed to the command being executed.

Several conventions are used, the name of the command needs to match a method name on the
processor. The key names in the params hash need to match parameter names to the method being
invoked (and will be automatically assigned). The :id value is used to name a queue that the
client can poll for return values from the remote command, if required.

== USAGE

To use Airbrush, you will need a starling server installed and running:

    $> starling -v -P /tmp/starling.pid -q /tmp/queue

and at least one Airbrush instance running, including your processor:

    $> airbrush -v

To send a remote job to the Airbrush server, use the Airbrush::Client module located
in airbrush/client.rb. An example is airbrush-example-client, which sends an image to the
remote server to be turned into a set of previews.
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server