{"id":20859093,"url":"https://github.com/andersinno/soviet","last_synced_at":"2025-08-15T19:27:28.469Z","repository":{"id":6580615,"uuid":"7822857","full_name":"andersinno/soviet","owner":"andersinno","description":"Simple job management for Django","archived":false,"fork":false,"pushed_at":"2013-02-21T13:53:51.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-07-02T20:03:49.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andersinno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-25T15:37:55.000Z","updated_at":"2013-11-01T03:02:14.000Z","dependencies_parsed_at":"2022-09-07T19:40:27.422Z","dependency_job_id":null,"html_url":"https://github.com/andersinno/soviet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andersinno/soviet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andersinno%2Fsoviet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andersinno%2Fsoviet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andersinno%2Fsoviet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andersinno%2Fsoviet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andersinno","download_url":"https://codeload.github.com/andersinno/soviet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andersinno%2Fsoviet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270618613,"owners_count":24617260,"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-15T02:00:12.559Z","response_time":110,"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-11-18T04:48:36.822Z","updated_at":"2025-08-15T19:27:28.448Z","avatar_url":"https://github.com/andersinno.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Soviet\n======\n\nSoviet is a Django app that's sorta-kinda Celery's little communist brother.\n\nIt lets your apps -- usually small, non-distributed apps -- easily do work in the background.\nIt's also proudly opinionated -- the only queue store available is Django's database.\n\nThe slave processes may be directly started after you've enqueued some jobs, or you might have\na cron job or similar to actually have some work done.\n\nAs usual, better documentation may eventually ensue.\n\nWhat's with the name?\n---------------------\n\nSome whimsy and free association riffing on \"workers\", etc.\n\nQuick start/tour/something\n--------------------------\n\n1. Add Soviet to your Django ``INSTALLED_APPS`` and ``syncdb``.\n2. Open up ``manage.py shell``. Run something like this:\n\n```python\nfrom soviet import make_job, run_job_slaves\nmake_job(\"soviet.menial_jobs:calculate_sum\", {\"a\": 1000, \"b\": 2000})\nmake_job(\"soviet.menial_jobs:calculate_sum\", {\"a\": None, \"b\": []})\nrun_job_slaves()\n```\n\n3. A subprocess should start and run through all jobs available (all two of them).\n4. A stringified version of the return value of each job is saved into the database.\n5. Close the shell and check ``manage.py soviet_manage status``. If all went right,\n   you should see one completed and one failed job (as you can't sum None and a list).\n6. Examine the database at your leisure for the results.\n7. Use ``soviet_manage purge_errors`` and ``soviet_manage purge_completed`` to remove\n   the two jobs.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandersinno%2Fsoviet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandersinno%2Fsoviet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandersinno%2Fsoviet/lists"}