{"id":13878414,"url":"https://github.com/zachahn/disqualified","last_synced_at":"2025-11-11T19:30:40.414Z","repository":{"id":57665609,"uuid":"513330882","full_name":"zachahn/disqualified","owner":"zachahn","description":"A small background job framework for Rails apps","archived":false,"fork":false,"pushed_at":"2024-12-08T23:14:28.000Z","size":2748,"stargazers_count":36,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T12:40:07.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zachahn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2022-07-13T00:30:31.000Z","updated_at":"2024-12-08T23:12:38.000Z","dependencies_parsed_at":"2024-08-10T17:27:55.032Z","dependency_job_id":"bb594153-f464-4e19-91a2-cec1af301b67","html_url":"https://github.com/zachahn/disqualified","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"58503b10517a9ef36df508e591de6da1048df805"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachahn%2Fdisqualified","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachahn%2Fdisqualified/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachahn%2Fdisqualified/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachahn%2Fdisqualified/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zachahn","download_url":"https://codeload.github.com/zachahn/disqualified/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085410,"owners_count":21045159,"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":[],"created_at":"2024-08-06T08:01:48.936Z","updated_at":"2025-11-11T19:30:35.389Z","avatar_url":"https://github.com/zachahn.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Disqualified\n\nI wanted a small background job framework that used SQLite as the backend.\n\nSince SQLite doesn't have any features like Postgres' `LISTEN`/`NOTIFY`,\nDisqualified resorts to polling the database. This might _disqualify_ it as an\noption for you, but it works well enough for my workload.\n\nNote that:\n\n* Disqualified only works with Rails.\n* Disqualified does not support multiple queues.\n* Disqualified supports Postgres and MySQL, but it isn't particularly optimized\n  for them.\n* Each Disqualified process assumes it's the only process running. Running\n  multiple instances of Disqualified should not hurt, but it is not supported.\n\n\n## Usage\n\nRun `bundle exec disqualified --help` for more information on how to run the\nDisqualified server. This is what I use in production:\n\n```\nenv RAILS_ENV=production bundle exec disqualified\n```\n\nYou can use Disqualified with ActiveJob, or you can use it by itself.\nThe examples below detail how to use it by by itself. See Installation\ninstructions for information on how to set up integration with ActiveJob.\n\n\n### Defining a job\n\n```ruby\nclass ComplicatedJob\n  include Disqualified::Job\n\n  def perform(arg1, arg2)\n    # ...\n  end\nend\n```\n\n\n### Queuing\n\n```ruby\nComplicatedJob.perform_async(1, 2)\nComplicatedJob.perform_in(1.minute, 1, 2)\nComplicatedJob.perform_at(3.days.from_now, 1, 2)\n```\n\n\n## Installation\n\nRun this in your shell, in your Rails app.\n\n```bash\nbundle add disqualified\nbundle exec rails generate disqualified:install\nbundle binstub disqualified\n```\n\nPlease remember to run `rails generate disqualified:install` when upgrading\nDisqualified! It is mostly an idempotent command and will prepare any necessary\ndatabase migrations.\n\n\n### ActiveJob\n\nYou can optionally set up Disqualified as ActiveJob's default backend.\n\nUsually, you'll just need to update your `config/environments/production.rb`\nfile to include something like this.\n\n```ruby\nrequire \"disqualified/active_job\"\n\nRails.application.configure do\n  # ...\n  config.active_job.queue_adapter = :disqualified\n  # ...\nend\n```\n\n\n## Contributing\n\nPRs are welcome! Please confirm the change with me before you start working;\nsome features might be better off as a plugin or as a fork.\n\nWhen submitting a PR, and if you prefer, please `Allow edits from maintainers`.\nThis will help get your contributions merged in a bit faster.\n\n\n## License\n\nThe gem is available as open source under the terms of the\n[LGPL v3 License](https://opensource.org/licenses/LGPL-3.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzachahn%2Fdisqualified","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzachahn%2Fdisqualified","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzachahn%2Fdisqualified/lists"}