{"id":18041254,"url":"https://github.com/cblavier/jobbr","last_synced_at":"2025-08-22T05:32:08.250Z","repository":{"id":6846278,"uuid":"8094891","full_name":"cblavier/jobbr","owner":"cblavier","description":"Rails engine to manage and supervise your batch jobs. Based on sidekiq.","archived":false,"fork":false,"pushed_at":"2024-05-23T14:05:06.000Z","size":408,"stargazers_count":34,"open_issues_count":1,"forks_count":13,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-27T23:49:06.520Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cblavier.png","metadata":{"files":{"readme":"README.rdoc","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-08T14:34:58.000Z","updated_at":"2025-01-24T05:51:27.000Z","dependencies_parsed_at":"2022-09-19T00:51:09.054Z","dependency_job_id":null,"html_url":"https://github.com/cblavier/jobbr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cblavier/jobbr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fjobbr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fjobbr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fjobbr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fjobbr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cblavier","download_url":"https://codeload.github.com/cblavier/jobbr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fjobbr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271590312,"owners_count":24786194,"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","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10-30T15:08:55.355Z","updated_at":"2025-08-22T05:32:07.861Z","avatar_url":"https://github.com/cblavier.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Jobbr\n\nJobbr is a Rails engine for supervising your delayed jobs and scheduled jobs (think Cron).\nDelayed jobs will run using sidekiq.\n\nIt provides a framework to abstract creation and execution of such jobs and a user interface to supervise jobs and read their logs.\n\n{\u003cimg src=\"https://api.travis-ci.org/cblavier/jobbr.svg?branch=master\" /\u003e}[http://travis-ci.org/cblavier/jobbr]\n\n{\u003cimg src=\"https://codeclimate.com/github/cblavier/jobbr.png\" /\u003e}[https://codeclimate.com/github/cblavier/jobbr]\n\n{\u003cimg src=\"https://codeclimate.com/github/cblavier/jobbr/coverage.png\" /\u003e}[https://codeclimate.com/github/cblavier/jobbr]\n\n== Screenshots\n\n{\u003cimg src=\"http://f.cl.ly/items/0N0G3A3c2A1X2l2s3b3p/Capture%20d%E2%80%99%C3%A9cran%202013-02-12%20%C3%A0%2010.52.05.png\" width='400'\u003e}[http://cl.ly/image/3r320L101c3h]\n{\u003cimg src=\"http://cl.ly/image/21433N411G01/Capture%20d%E2%80%99%C3%A9cran%202013-02-12%20%C3%A0%2010.55.13.png\" width='400'\u003e}[http://cl.ly/image/21433N411G01]\n\n== Dependencies\n\nJobbr has strong dependencies on following components:\n\n* *Sidekiq*: the background processing framework used to run delayed jobs.\n* *Redis*: all jobs \u0026 logs are stored in Redis for supervision.\n* *Whenever*: Jobbr uses {Whenever}[https://github.com/javan/whenever] gem to automatically updates Crontab during deployment.\n\n== Setup\n\nStart by adding Jobbr to your Gemfile:\n\n    gem 'jobbr'\n\n=== User interface\n\nThen mount Jobbr engine to your `routes.rb` file.\n\n    mount Jobbr::Engine =\u003e \"/jobbr\"\n\n=== Scheduled Jobs\n\nUse provided generators to create a first scheduled job\n\n    $\u003e rails g jobbr:scheduled_job dummy\n\nIt will create a namespaced model as a well as a Whenever configuration file.\n\nProvided you fill in description and scheduling attributes in the model, you will be able to see it in jobbr tasks:\n\n    $\u003e bundle exec jobbr --list\n    bundle exec jobbr dummy_job  # A dummy Job\n\nAnd to see it in your crontab preview:\n\n    $\u003e whenever\n    30 5 * * * /bin/bash -l -c 'cd /Users/cblavier/code/my_app \u0026\u0026 RAILS_ENV=production bundle exec jobbr dummy_job \u003e\u003e /Users/cblavier/code/my_app/log/cron.log 2\u003e\u00261'\n\n=== Heroku Scheduled Jobs\n\nYou can also use Heroku Scheduler to run jobs. Unfortunately Heroku does not provide Cron-scheduling, but let you run jobs every 10 minutes, every hour or every day.\n\nJobbr provides you with 3 tasks 'bundle exec jobbr heroku:minutely', 'bundle exec jobbr heroku:hourly' and 'bundle exec jobbr heroku:daily', that will run any Job with `heroku_run` directive.\n\nThen you will need to manually add jobs to the Heroku scheduler console\n\n{\u003cimg src=\"http://cl.ly/image/2N1T1l1w2c28/Capture%20d%E2%80%99%C3%A9cran%202013-07-09%20%C3%A0%2022.18.40.png\" width='400'\u003e}[http://cl.ly/image/2N1T1l1w2c28]\n\n\n=== Delayed Jobs\n\nUse generators to get a new job model:\n\n    $\u003e rails g jobbr:delayed_job dummy\n\nYou will get a new model with a perform method. Perform parameters are:\n\n* params: is a hash of parameters for your job.\n* run: is the object that will be persisted (and polled) for this job execution. Your delayed job can use it to provide progress information (to display a progress bar) and a final result.\n\n    run.progress = 100\n    run.result = 'my job result'\n\nYou can now run your delayed job as following:\n\n    run_id = DelayedJobs::DummyJob.run_delayed(some_param: 37)\n\nAnd then get job status like this:\n\n    Jobbr::Run.find(run_id).status # returns :waiting / :running / :failed / :success\n\nJobbr also provides a controller to run and poll delayed_jobs :\n\n* Post on following url to run your job: \u003ctt\u003edelayed_job_creation_path(DelayedJobs::DummyJob, { some_param: 37 })\u003c/tt\u003e\n\n* And then poll this url (using the id returned in previous post) to get your job status: \u003ctt\u003edelayed_job_polling_path(run_id)\u003c/tt\u003e\n\nThis project rocks and uses MIT-LICENSE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblavier%2Fjobbr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcblavier%2Fjobbr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblavier%2Fjobbr/lists"}