worker-glass

0.2.5last stable release 5 years ago
Complexity Score
Low
Open Issues
0
Dependent Projects
1
Weekly Downloadsglobal
25

Downloads

Readme

Worker Glass [Unmaintained]

Note: This library is no longer in use in the Karafka ecosystem. It was developed for Karafka versions prior to 1.0. If you’re using this library and want to take it over, please ping us.

WorkerGlass provides optional timeout and after failure (reentrancy) for background processing worker engines (like Sidekiq, Resque, etc).

Reentrancy

If you don’t know what is reentrancy, you can read about it here.

Setup

If you want to use timeout and/or reentrancy, please add appropriate modules into your worker.

WorkerGlass allows to configure following options:

Method Arguments Description self.logger= Logger Set logger which will be used by Worker Glass (if not defined, null logger will be used)

Usage

WorkerGlass has few submodules that you can prepend to your workers to obtain given functionalities:

Module Description WorkerGlass::Reentrancy Provides additional reentrancy layer if anything goes wrong WorkerGlass::Timeout Allows to set a timeout after which a given worker task will fail

WorkerGlass::Timeout

If you want to provide timeouts for your workers, just prepend WorkerGlass::Timeout to your worker and set the timeout value:

class Worker2
  prepend WorkerGlass::Timeout

  self.timeout = 60 # 1 minute timeout

  def perform(first_param, second_param, third_param)
    SomeService.new.process(first_param, second_param, third_param)
  end
end

Worker2.perform_async(example1, example2, example3)

WorkerGlass::Reentrancy

If you want to provide reentrancy for your workers, just prepend WorkerGlass::Reentrancy to your worker and define after_failure method that will be executed upon failure:

class Worker3
  prepend WorkerGlass::Reentrancy

  def perform(first_param, second_param, third_param)
    SomeService.new.process(first_param, second_param, third_param)
  end

  def after_failure(first_param, second_param, third_param)
    SomeService.new.reset_state(first_param, second_param, third_param)
  end
end

Worker3.perform_async(example1, example2, example3)

References

  • Karafka framework
  • Worker Glass Actions CI
  • Worker Glass Coditsu

Note on contributions

First, thank you for considering contributing to the Karafka ecosystem! It’s people like you that make the open source community such a great community!

Each pull request must pass all the RSpec specs, integration tests and meet our quality requirements.

Fork it, update and wait for the Github Actions results.

Dependencies

CVE IssuesActive
0
Scorecards Score
No Data
Test Coverage
No Data
Follows Semver
Yes
Github Stars
15
Dependenciestotal
2
DependenciesOutdated
0
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No

Learn how to distribute worker-glass in your own private RubyGems registry

gem install worker-glass
Processing...
Done

6 Releases

RubyGems on Cloudsmith

Getting started with RubyGems on Cloudsmith is fast and easy.