collectiveidea/delayed_job_mongoid

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# DelayedJob Mongoid backend

[![Gem Version][gem-img]][gem-url]
[![Build Status][ghactions-img]][ghactions-url]
[![Code Climate][codeclimate-img]][codeclimate-url]
[![Coverage][coveralls-img]][coveralls-url]

## Requirements

Delayed Job Mongoid supports the following dependency versions:

- Ruby 2.3+
- Mongoid 5+

For Mongoid 3 and 4, use 2.x version of this gem.

## Installation

Add the gem to your Gemfile:

```ruby
gem 'delayed_job_mongoid'
```

Then create the indexes (don't forget to do this in production):

```
script/rails runner 'Delayed::Backend::Mongoid::Job.create_indexes'
```

To generate `script/delayed_job`:

```
rails generate delayed_job
```

That's it. Use [delayed_job](http://github.com/collectiveidea/delayed_job) as normal.

## Advanced Usage

### Silencing Noisy Logging

By default, the Mongo Ruby Driver will print log lines every
5 seconds as Delayed Job polls your database. Use the following
plugin to silence logs which happen while polling (except `error`
level) and only log operations which happen during job execution.

```ruby
# in initializers/delayed_job.rb

require 'delayed/plugins/mongo_silencer'
Delayed::Worker.plugins << Delayed::Plugins::MongoSilencer
```

To ensure thread safety, this plugin requires your `Mongo::Logger.logger`
to be an instance of `ActiveSupport::Logger` class. It will ignore instances
of the Ruby standard library `Logger` class.

### Customizing Job Class

Delayed Job allows specifying a custom backend class for jobs.
For example, you may wish to specify a different database
collection name. To do this:

```ruby
# in an initializer

class MyJob
  include ::Mongoid::Document

  store_in(collection: :my_jobs)

  include ::Delayed::Backend::Mongoid::Mixin
end

Delayed::Worker.backend = MyJob

# in your application

MyJob.enqueue(job_object)
```

[gem-img]: https://badge.fury.io/rb/delayed_job_mongoid.svg
[gem-url]: https://rubygems.org/gems/delayed_job_mongoid
[ghactions-img]: https://github.com/collectiveidea/delayed_job_mongoid/actions/workflows/test.yml/badge.svg?query=branch%3Amaster
[ghactions-url]: https://github.com/collectiveidea/delayed_job_mongoid/actions/workflows/test.yml?query=branch%3Amaster
[codeclimate-img]: https://codeclimate.com/github/collectiveidea/delayed_job_mongoid.svg
[codeclimate-url]: https://codeclimate.com/github/collectiveidea/delayed_job_mongoid
[coveralls-img]: https://coveralls.io/repos/github/collectiveidea/delayed_job_mongoid/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/github/collectiveidea/delayed_job_mongoid?branch=master