Giter Club home page Giter Club logo

active_job_sqs_adapter's Introduction

ActiveJobSqsAdapter

An easy to use adapter for Rails ActiveJob for performing background jobs through AWS SQS. This can be used to push the jobs to AWS SQS queue and to execute the jobs from the SQS queue.

Installation

Add this line to your application's Gemfile:

gem 'active_job_sqs_adapter'

And then execute:

$ bundle

Or install it yourself as:

$ gem install active_job_sqs_adapter

Configuration:

To push the jobs to SQS queue just set the ActiveJob queue adapter as ActiveJobSqsAdapter either in config/application.rb or in the specific environment config file:

class Application < Rails::Application
  # ...
  config.active_job.queue_adapter = ActiveJobSqsAdapter
end

Create a job using rails generator:

rails generate job SqsExampleJob

The generator will create the job in /app/jobs/sqs_example_job.rb as below:

class SqsExampleJob < ActiveJob::Base
  # Set the Queue as Default
  queue_as :default
  
  def perform(*args)
    # Perform Job
  end
end
Queue:

The above job(SqsExampleJob) will use default queue.

For more about specifying the queue to which the jobs needs to be pushed in the SQS see: active_job_basics#queues

Usage

Just run the job as usual and and ActiveJobSqsAdapter with handle the rest.

SqsExampleJob.perform_later(args)

If you wish to perform jobs immediately and not in background just use perform_now instead of perform_later

SqsExampleJob.perform_now(args)
Delay:

Set delay for the job to perform:

SqsExampleJob.set(wait: 10.minutes).perform_later(args)

Note: The maximum delay time can be set for a job is 15 minutes because of the restriction in AWS SQS.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/MallowTech/active_job_sqs_adapter. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

You can just:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

The gem is available as open source under the terms of the MIT License.

active_job_sqs_adapter's People

Contributors

mgokul595 avatar mallowtechdev avatar

Stargazers

Rajkumar avatar Gokul Murali avatar  avatar Jayaprakash avatar

Watchers

James Cloos avatar  avatar Logesh Mohanasundaram avatar  avatar Jayaprakash avatar Jayamurugan P avatar Gokul Murali avatar  avatar  avatar Rajkumar avatar

Forkers

gokul595

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.