{"id":16937200,"url":"https://github.com/ixti/sidekiq-antidote","last_synced_at":"2025-04-05T14:42:12.338Z","repository":{"id":209355567,"uuid":"723823891","full_name":"ixti/sidekiq-antidote","owner":"ixti","description":"Sidekiq poison-pill instant remedy","archived":false,"fork":false,"pushed_at":"2024-01-20T03:10:29.000Z","size":48,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-20T13:13:08.246Z","etag":null,"topics":["sidekiq"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ixti.png","metadata":{"files":{"readme":"README.adoc","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-26T21:20:04.000Z","updated_at":"2024-07-25T19:53:58.744Z","dependencies_parsed_at":"2023-11-30T21:23:11.976Z","dependency_job_id":"adc37fcf-8236-4828-a2f4-6aa59092b587","html_url":"https://github.com/ixti/sidekiq-antidote","commit_stats":null,"previous_names":["ixti/sidekiq-antidote"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixti%2Fsidekiq-antidote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixti%2Fsidekiq-antidote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixti%2Fsidekiq-antidote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixti%2Fsidekiq-antidote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ixti","download_url":"https://codeload.github.com/ixti/sidekiq-antidote/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353680,"owners_count":20925325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sidekiq"],"created_at":"2024-10-13T20:58:58.473Z","updated_at":"2025-04-05T14:42:12.318Z","avatar_url":"https://github.com/ixti.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Sidekiq::Antidote\n\n:ci-url: https://github.com/ixti/sidekiq-antidote/actions/workflows/ci.yml?query=branch%3Amain\n:ci-img: https://github.com/ixti/sidekiq-antidote/actions/workflows/ci.yml/badge.svg?branch=main\n:codecov-url: https://codecov.io/gh/ixti/sidekiq-antidote/tree/main\n:codecov-img: https://codecov.io/gh/ixti/sidekiq-antidote/graph/badge.svg?token=F5AAMPN35A\n\n{ci-url}[image:{ci-img}[CI]]\n{codecov-url}[image:{codecov-img}[codecov]]\n\n== Installation\n\nAdd this line to your application's Gemfile:\n\n    $ bundle add sidekiq-antidote\n\nOr install it yourself as:\n\n    $ gem install sidekiq-antidote\n\n\n== Usage\n\n[source, ruby]\n----\nrequire \"sidekiq\"\nrequire \"sidekiq/antidote\"\n\nSidekiq::Antidote.configure do |config|\n  # Set inhibitors cache refresh rate in seconds.\n  # Default: 5.0\n  config.refresh_rate = 10.0\nend\n----\n\nWhen running in forked environment (e.g., Puma web server), you also need to\ncall `Sidekiq::Antidote.startup` on fork:\n\n[source, ruby]\n----\n# file: config/puma.rb\non_worker_boot { Sidekiq::Antidote.startup }\n----\n\n=== Web UI\n\nAdding Antidote tab in Sidekiq web UI is as simple as:\n\n[source, ruby]\n----\nrequire \"sidekiq/web\"\nrequire \"sidekiq/antidote/web\"\n----\n\n=== Middleware(s)\n\n`Sidekiq::Antidote` relies on following bundled middlewares:\n\n* `Sidekiq::Antidote::Middlewares::Client`\n* `Sidekiq::Antidote::Middlewares::Server`\n\nThe middleware is automatically injected when you require `sidekiq/antidote`.\nIn rare cases, when this causes an issue, you can change middleware order manually:\n\n[source,ruby]\n----\nSidekiq.configure_client do |config|\n  # ...\n\n  config.client_middleware do |chain|\n    chain.prepend(Sidekiq::Antidote::Middlewares::Client)\n  end\nend\n\nSidekiq.configure_server do |config|\n  # ...\n\n  config.client_middleware do |chain|\n    chain.prepend(Sidekiq::Antidote::Middlewares::Client)\n  end\n\n  config.server_middleware do |chain|\n    chain.prepend(Sidekiq::Antidote::Middlewares::Server)\n  end\nend\n----\n\nSee: https://github.com/sidekiq/sidekiq/blob/main/lib/sidekiq/middleware/chain.rb\n\n\n== Inhibitors\n\n=== Treatments\n\nWhen adding antidote you must pick on of the treatments:\n\nskip::\n  Skip the job (don't enqueue and/or perform)\nkill::\n  Kill the job (send to the dead set instead of enqueueing and/or performing)\n\n\n=== Class Qualifiers\n\nClass qualifier is the job class pattern. It may match the job class or the job\nclass and method name (when used with ActionMailer delayed deliveries):\n\n* `ExampleJob`\n* `Namespaced::ExampleJob`\n* `UserMailer#welcome`\n\nYou can also use pattern matching:\n\n*::\n  Matches any number of alpha-numeric characters and underscores:\n  * `*Job` matches: `ExampleJob`, but not `Namespaced::ExampleJob`, or `UserMailer#welcome`\n  * `UserMailer#*` matches any method of `UserMailer`\n**::\n  Matches any number of components:\n  * `**` mathes any job or mailer method\n  * `A::**::Job` matches `A::B::Job`, `A::B::C::D::CJob`, etc.\n  * `A**::Job` matches `A::Job`, `Abc::Job`, `A::B::Job`, etc.\n{}::\n  Matches any of the given literal:\n  * `{A,B,C}Job` matches `AJob`, `BJob`, and `CJob`\n\n\n== Compatibility\n\nThis library aims to support and is tested against:\n\n* https://www.ruby-lang.org[Ruby]\n** MRI 3.0.x\n** MRI 3.1.x\n** MRI 3.2.x\n** MRI 3.3.x\n** MRI 3.4.x\n* https://github.com/sidekiq/sidekiq[Sidekiq]\n** 7.2.x\n** 7.3.x\n* https://redis.io[Redis]\n** 7.0.x\n** 7.2.x\n\nIf something doesn't work on one of these versions, it's a bug.\n\nThis library may inadvertently work (or seem to work) on other Ruby, Redis, and\nSidekiq versions, however support will only be provided for the versions listed\nabove.\n\nIf you would like this library to support another Ruby, Redis, or Sidekiq\nversion, you may volunteer to be a maintainer. Being a maintainer entails making\nsure all tests run and pass on that implementation. When something breaks on\nyour implementation, you will be responsible for providing patches in a timely\nfashion. If critical issues for a particular implementation exist at the time of\na major release, support for that Ruby, Redis, and/or Sidekiq version may be\ndropped.\n\n\n== Development\n\n  bundle install\n  bundle exec appraisal generate\n  bundle exec appraisal install\n  bundle exec rake\n\n\n== Contributing\n\n* Fork sidekiq-antidote\n* Make your changes\n* Ensure all tests pass (`bundle exec rake`)\n* Send a merge request\n* If we like them we'll merge them\n* If we've accepted a patch, feel free to ask for commit access!\n\n\n== Acknowledgement\n\n* Inspired by https://github.com/square/sidekiq-killswitch[sidekiq-killswitch]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixti%2Fsidekiq-antidote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fixti%2Fsidekiq-antidote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixti%2Fsidekiq-antidote/lists"}