This Ruby gem enhances the capabilities of Sidekiq, Sidekiq Pro, and Sidekiq Enterprise by adding essential utilities.
Install the gem and add to the application's Gemfile by executing:
$ bundle add sidekiq-belt
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install sidekiq-belt
To enable all features, add the following code to the end of the Sidekiq initializer file:
Sidekiq::Belt.use!
or
Sidekiq::Belt.use!([:all])
To enable only specific features, add the following code to the Sidekiq initializer file while passing the necessary options:
Sidekiq::Belt.use!([:periodic_run, :periodic_pause])
This functionality adds a button on the Sidekiq Enterprise web page that allows manual execution of a job.
To enable this feature, pass the periodic_run
option:
Sidekiq::Belt.use!([:periodic_run])
This option adds a button to pause and unpause the cron of a periodic job. When a periodic job is paused, the perform is skiped and on server this content is logged.
2023-10-12T19:24:00.001Z pid=127183 tid=2ian INFO: Job SomeHourlyWorkerClass is paused by Periodic Pause
To enable this feature, pass the periodic_pause
option:
Sidekiq::Belt.use!([:periodic_pause])
This option adds a button to remove failed batches.
To enable this feature, pass the failed_batch_remove
option:
Sidekiq::Belt.use!([:failed_batch_remove])
This feature is a manual job manager where you can list jobs. These jobs are grouped and organized in a Run Jobs
tab.
You can easily and quickly select which job you want to run manually.
To enable this feature, pass the run_job
option:
Sidekiq::Belt.use!([:run_job])
To configure the list of jobs
Sidekiq::Belt.configure do |config|
config.run_jobs = [
{ class: "ManualClearDataWorker", args: ['a'] },
{ class: "ManualDoSomethingWorker", args: ['b'] },
{ class: "FirstOperationalWorker", args: ['c'], group: 'Operational' },
{ class: "SecondOperationalWorker", args: ['d'], group: 'Operational' },
{ class: "AnotherGroupWorker", args: ['e'], group: 'Group with a long name' }
]
end
Or
Sidekiq::Belt.configure do |config|
config.run_jobs.push({ class: "AWorker", args: ["a"] })
config.run_jobs.push({ class: "BWorker" })
config.run_jobs << { class: "CWorker", args: ["a"], group: "Etc" }
config.run_jobs << { class: "DWorker", args: ["a"], group: "Etc" }
end
This feature adds a little line on top of Sidekiq web that shows a configurable message.
To enable this feature, pass the top_label
option:
Sidekiq::Belt.use!([:top_label])
Sidekiq::Belt.configure do |config|
config.top_label = {
production: {
background_color: 'red',
text: 'Be careful',
color: 'white'
},
development: {
background_color: 'green',
text: 'You are safe!',
color: 'white'
}
}
end
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/dannnylo/sidekiq-belt. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Sidekiq::Belt project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.