Git Product home page Git Product logo

medivo_bj's Introduction

NAME
  bj

SYNOPSIS
  bj (migration_code|generate_migration|migrate|setup|run|submit|list|set|config|pid) [options]+

DESCRIPTION
  ________________________________
  Overview
  --------------------------------
  
    Backgroundjob (Bj) is a simple to use background priority queue for rails.
    Although not yet tested on windows, the design of bj is such that operation
    should be possible on any operating system, including M$.
  
    Jobs can be submitted to the queue directly using the api or from the
    commandline using the 'bj' script.  For example
  
    code:
        Bj.submit 'cat /etc/password'
  
      cli:
        bj submit cat /etc/password
  
    When used from inside a rails application bj arranges that another process
    will always be running in the background to process the jobs that you submit.
    By using a separate process to run jobs bj does not impact the resource
    utilization of your rails application at all and enables several very cool
    features:
  
      1) Bj allows you to sumbit jobs to any of your configured databases and,
      in each case, spawns a separate background process to run jobs from that
      queue
  
        Bj.in :production do
          Bj.submit 'production_job.exe'
        end
  
        Bj.in :development do
          Bj.submit 'development_job.exe'
        end
  
      2) Although bj ensures that a process is always running to process
      your jobs, you can start a proces manually.  This means that any machine
      capable of seeing your RAILS_ROOT can run jobs for your application, allowing
      one to setup a cluster of machines doing the work of a single front end rails
      applicaiton.
  
  ________________________________
  Install 
  --------------------------------
    
    Bj can be installed two ways: as a gem or as a plugin.
  
      gem:
        1) $sudo gem install bj
        2) add "require 'bj'" to config/environment.rb
        3) bj setup
  
      plugin:
        1) ./script/plugin install http://codeforpeople.rubyforge.org/svn/rails/plugins/bj
        2) ./script/bj setup
  
  ________________________________
  Api
  --------------------------------
  
    submit jobs for background processing.  'jobs' can be a string or array of
    strings.  options are applied to each job in the 'jobs', and the list of
    submitted jobs is always returned.  options (string or symbol) can be
    
      :rails_env => production|development|key_in_database_yml 
                    when given this keyword causes bj to submit jobs to the
                    specified database.  default is RAILS_ENV.
    
      :priority => any number, including negative ones.  default is zero.
    
      :tag => a tag added to the job.  simply makes searching easier.
    
      :env => a hash specifying any additional environment vars the background
              process should have.
    
      :stdin => any stdin the background process should have.
    
    eg:
    
      jobs = Bj.submit 'echo foobar', :tag => 'simple job'
    
      jobs = Bj.submit '/bin/cat', :stdin => 'in the hat', :priority => 42
    
      jobs = Bj.submit './script/runner ./scripts/a.rb', :rails_env => 'production'
     
      jobs = Bj.submit './script/runner /dev/stdin',
                       :stdin => 'p RAILS_ENV',
                       :tag => 'dynamic ruby code'
  
      jobs Bj.submit array_of_commands, :priority => 451 
    
  when jobs are run, they are run in RAILS_ROOT.  various attributes are
  available *only* once the job has finished.  you can check whether or not a
  job is finished by using the #finished method, which simple does a reload and
  checks to see if the exit_status is non-nil.
    
    eg:
    
      jobs = Bj.submit list_of_jobs, :tag => 'important'
      ...
      
      jobs.each do |job|
        if job.finished?
          p job.exit_status
          p job.stdout
          p job.stderr
        end
      end
  
  See lib/bj/api.rb for more details.
  
  ________________________________
  Sponsors 
  --------------------------------
    http://www.engineyard.com/
    http://quintess.com/
    http://eparklabs.com/

PARAMETERS
  --rails_root=rails_root, -R (0 ~> rails_root=) 
      the rails_root will be guessed unless you set this 
  --rails_env=rails_env, -E (0 ~> rails_env=development) 
      set the rails_env 
  --log=log, -l (0 ~> log=STDERR) 
      set the logfile 
  --help, -h 

AUTHOR
  [email protected]

URIS
  http://codeforpeople.com/lib/ruby/
  http://rubyforge.org/projects/codeforpeople/
  http://codeforpeople.rubyforge.org/svn/rails/plugins/

medivo_bj's People

Contributors

brianauton avatar danielberlinger avatar alexaandru avatar

Watchers

 avatar Evan avatar  avatar Mauricio Alarcon avatar Jessica Barnett avatar Rex Feng avatar  avatar Sid Maxwell avatar James Cloos avatar Jason Bhan avatar Jeffrey Baird avatar Paolo avatar Dave Liu avatar Kristian Kaufmann avatar Scotty Mackenzie avatar Matthew Powers avatar Josh Cohen avatar Anh Quoc Nguyen avatar Jon Roosevelt avatar Sam Ehrlich avatar Anup Panwar avatar Deepak C S avatar Frank Rivera avatar carmelrita avatar  avatar Jason Satran avatar  avatar  avatar Warren Stephens avatar Pavan Kumar P V avatar  avatar Sharad Kumar Singh avatar  avatar Ananda avatar  avatar  avatar ghalemani avatar

Forkers

brianauton

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.