All Projects → rocketjob → Rocketjob

rocketjob / Rocketjob

Licence: apache-2.0
Ruby's missing background and batch processing system

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Rocketjob

rocketjob
Ruby's missing background and batch processing system
Stars: ✭ 281 (+8.91%)
Mutual labels:  sidekiq, mongoid, compression, batch, batch-processing
spring-batch-rest
REST API for Spring Batch using Spring Boot 2.2
Stars: ✭ 85 (-67.05%)
Mutual labels:  batch, batch-processing
Sidekiq Batch
Sidekiq Batch Jobs Implementation
Stars: ✭ 233 (-9.69%)
Mutual labels:  sidekiq, batch
goroutines
It is an efficient, flexible, and lightweight goroutine pool. It provides an easy way to deal with concurrent tasks with limited resource.
Stars: ✭ 88 (-65.89%)
Mutual labels:  batch, batch-processing
Asakusafw
Asakusa Framework
Stars: ✭ 114 (-55.81%)
Mutual labels:  batch, batch-processing
Mongodb University Classes
Courseware and solutions of problems from MongoDB University's classes that I've attended.
Stars: ✭ 152 (-41.09%)
Mutual labels:  batch, mongodb
python-batch-runner
A tiny framework for building batch applications as a collection of tasks in a workflow.
Stars: ✭ 22 (-91.47%)
Mutual labels:  batch, batch-processing
Mongoid auto increment id
Override id field to MySQL like auto increment for Mongoid.
Stars: ✭ 68 (-73.64%)
Mutual labels:  mongoid, mongodb
svg2vector
Online batch converter of SVG images to Android vector drawable XML resource files
Stars: ✭ 39 (-84.88%)
Mutual labels:  batch, batch-processing
gobatch
Batch processing library for Golang.
Stars: ✭ 19 (-92.64%)
Mutual labels:  batch, batch-processing
Faast.js
Serverless batch computing made simple.
Stars: ✭ 1,323 (+412.79%)
Mutual labels:  batch, batch-processing
DAR
DAR - Disk ARchive
Stars: ✭ 58 (-77.52%)
Mutual labels:  compression, encryption
Mkvtoolnix Batch
Windows Batch script to automate batch processing using mkvtoolnix.
Stars: ✭ 42 (-83.72%)
Mutual labels:  batch, batch-processing
Excel Parser Processor
Simply does the tedious, repetitive operations for all rows of excel files step by step and reports after the job is done. It can download files from URL(s) in a column of Excel files. If a new filename is provided at column B it will rename the file before saving. It will even create sub folders if column C is full with a valid folder name.
Stars: ✭ 177 (-31.4%)
Mutual labels:  batch, batch-processing
Easy Batch
The simple, stupid batch framework for Java
Stars: ✭ 493 (+91.09%)
Mutual labels:  batch, batch-processing
aws-batch-example
Example use of AWS batch
Stars: ✭ 96 (-62.79%)
Mutual labels:  batch, batch-processing
Tomatoes
Pomodoro Technique® online time tracker
Stars: ✭ 344 (+33.33%)
Mutual labels:  mongoid, mongodb
Lockbox
Modern encryption for Ruby and Rails
Stars: ✭ 905 (+250.78%)
Mutual labels:  mongoid, encryption
rack-cargo
🚚 Batch requests for Rack apps (works with Rails, Sinatra, etc)
Stars: ✭ 17 (-93.41%)
Mutual labels:  batch, batch-processing
sidekiq-merger
Merge Sidekiq jobs
Stars: ✭ 49 (-81.01%)
Mutual labels:  sidekiq, batch

Rocket Job

Gem Version Downloads License Support

Ruby's missing batch system

Checkout https://rocketjob.io/

Rocket Job

Documentation

Support

Rocket Job v5

  • Support for Ruby v3 and Rails 6.
  • Multiple output file support through extended output_categories capability.
    • File output formats for each category. For example: CSV, PSV, JSON, etc.
  • Support for AWS DocumentDB as the data store.
  • Removed use of Symbols to meet Symbol deprecation in MongoDB and Mongoid.

The following plugins have been deprecated and will be removed in Rocket Job v5.1

  • RocketJob::Batch::Tabular::Input
  • RocketJob::Batch::Tabular::Output

Rocket Job v4

Rocket Job Pro is now open source and included in Rocket Job.

The RocketJob::Batch plugin now adds batch processing capabilities to break up a single task into many concurrent workers processing slices of the entire job at the same time.

Example:

class MyJob < RocketJob::Job
  include RocketJob::Batch
  
  self.description         = "Reverse names"
  self.destroy_on_complete = false
  self.collect_output      = true

  # Method to call by all available workers at the same time.
  # Reverse the characters for each line: 
  def perform(line)
    line.reverse
  end
end

Upload a file for processing, for example names.csv which could contain:

jack
jane
bill
john
blake
chris
dave
marc

To queue the above job for processing:

job = MyJob.new
job.upload('names.csv')
job.save!

Once the job has completed, download the results into a file:

job.download('names_reversed.csv')

Contributing to the documentation

To contribute to the documentation it is as easy as forking the repository and then editing the markdown pages directly via the github web interface.

For more complex documentation changes checkout the source code locally.

Local checkout

  • Fork the repository in github.
  • Checkout your fork of the source code locally.
  • Install Jekyll
    cd docs
    bundle update
  • Run Jekyll web server:
    jekyll serve
  • Open a web browser to view the local documentation: http://127.0.0.1:4000
  • Edit the files in the /docs folder.
  • Refresh the page to see the changes.

Once the changes are complete, submit a github pull request.

Upgrading to V3

V3 replaces MongoMapper with Mongoid which supports the latest MongoDB Ruby client driver.

Upgrading Mongo Config file

Replace mongo.yml with mongoid.yml.

Start with the sample mongoid.yml.

For more information on the new Mongoid config file.

Note: The rocketjob and rocketjob_slices clients in the above mongoid.yml file are required.

Other changes

  • Arguments are no longer supported, use fields for defining all named arguments for a job.

  • Replace usages of rocket_job do to set default values:

  rocket_job do |job|
    job.priority = 25
  end

With:

  self.priority = 25
  • Replace key with field when adding attributes to a job:
  key :inquiry_defaults, Hash

With:

  field :inquiry_defaults, type: Hash, default: {}
  • Replace usage of public_rocket_job_properties with the user_editable option:
field :priority, type: Integer, default: 50, user_editable: true

Ruby Support

Rocket Job is tested and supported on the following Ruby platforms:

  • Ruby 2.1, 2.2, 2.3, 2.4, and above
  • JRuby 9.0.5 and above

Dependencies

  • MongoDB
    • Persists job information.
    • Version 2.7 or greater.
  • Semantic Logger
    • Highly concurrent scalable logging.

Versioning

This project uses Semantic Versioning.

Author

Reid Morrison

Contributors

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].