{"id":26128106,"url":"https://github.com/pdffiller/laravel-queue-qless","last_synced_at":"2026-01-19T12:02:59.388Z","repository":{"id":46042044,"uuid":"157516648","full_name":"pdffiller/laravel-queue-qless","owner":"pdffiller","description":"Qless Queue driver for Laravel","archived":false,"fork":false,"pushed_at":"2025-07-28T10:26:02.000Z","size":100,"stargazers_count":9,"open_issues_count":1,"forks_count":8,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-07-28T12:24:39.429Z","etag":null,"topics":["jobs","laravel-queues","pdffiller","platform","qless","queue","queue-tasks","redis-queue","worker"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/pdffiller.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-14T08:34:22.000Z","updated_at":"2025-07-28T10:25:43.000Z","dependencies_parsed_at":"2025-06-09T20:22:20.199Z","dependency_job_id":"61170935-6cd0-4708-9f1d-b59fa2aefcfd","html_url":"https://github.com/pdffiller/laravel-queue-qless","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/pdffiller/laravel-queue-qless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdffiller%2Flaravel-queue-qless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdffiller%2Flaravel-queue-qless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdffiller%2Flaravel-queue-qless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdffiller%2Flaravel-queue-qless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdffiller","download_url":"https://codeload.github.com/pdffiller/laravel-queue-qless/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdffiller%2Flaravel-queue-qless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28567861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["jobs","laravel-queues","pdffiller","platform","qless","queue","queue-tasks","redis-queue","worker"],"created_at":"2025-03-10T18:50:36.024Z","updated_at":"2026-01-19T12:02:59.373Z","avatar_url":"https://github.com/pdffiller.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Qless Queue driver for Laravel\n======================\n\n## Installation\n\nYou can install this package via composer using this command:\n\n```\ncomposer require pdffiller/laravel-queue-qless\n```\n\nThe package will automatically register itself using Laravel auto-discovery.\n\nSetup connection in `config/queue.php`\n\n```php\n    'connections' =\u003e [\n        // ...\n        'qless' =\u003e [\n            'driver' =\u003e 'qless',\n            'redis_connection' =\u003e 'qless',\n            'queue' =\u003e 'default',\n        ],\n        // ...    \n    ],\n```\n\nAlso you can set Qless queue as default in  `config/queue.php`\n\n```php\n    'default' =\u003e env('QUEUE_DRIVER', 'qless'),\n```\n\nRedis connection in `config/database.php`\n\n```php\n    'redis' =\u003e [\n\n        'client' =\u003e 'predis',\n\n        // ...\n        'qless' =\u003e [\n            'host' =\u003e env('REDIS_HOST', '127.0.0.1'),\n            'password' =\u003e env('REDIS_PASSWORD', null),\n            'port' =\u003e env('REDIS_PORT', 6379),\n            'database' =\u003e 0,\n        ],\n        // ...\n    ],\n```\n\nAnd add Laravel Qless service provider to app.php\n\n```php\n\u003c?php\n\nreturn [\n    //...\n    'providers' =\u003e [\n        //...\n        /**\n         * Qless\n         */\n         LaravelQless\\LaravelQlessServiceProvider::class,\n    ]\n];\n```\n\n## Usage\n\nOnce you completed the configuration you can use Laravel Queue API. If you used other queue drivers you do not need to change anything else. If you do not know how to use Queue API, please refer to the official Laravel documentation: http://laravel.com/docs/queues\n\nAlso you can use additional features.\n\n### Topics\nTopic help you to put a job to different queues. \nFirst, you must to create a subscription. You can use pattern for name of topics. \nSymbol `*` - one word, `#` - few words divided by point `.`. \nExamples: `first.second.*`, `*.second.*`, `#.third`.\n\n```php\n/**\n * Subscribe\n */\n\n\\Queue::subscribe('*.*.test', 'queue1');\n\n\\Queue::subscribe('this.*.test', 'queue2');\n\n\\Queue::subscribe('this.*.orange', 'queue3');\n\n```\n\nThan you can put job to all subscribers.\n\n```php\n/**\n * Put job to few queues\n */\n\\Queue::pushToTopic('this.is.test', TestQless::class, ['test' =\u003e 'test']);\n// Push job to queue1 and queue2, but not to queue3\n\n```\n\n### Custom Handler\nJob Handler helps you to create a custom route for jobs.\n\nCustom Handler example:\n\n```php\n\n    class CustomHandler implements JobHandler\n    {\n        public function perform(BaseJob $job): void\n        {\n            if ($job-\u003egetQueue() === 'queue_name') { // by queue\n                (new QueueNameJob)-\u003eperform($job);\n                return;\n            }\n            \n            if ($job-\u003egetData()['option_name'] === 'value') { // by payload\n                (new OptionNameJob)-\u003eperform($job);\n                return;\n            }\n            \n            if (in_array('tag_name', $job-\u003egetTags())) { // by tag\n                (new TagNameJob)-\u003eperform($job);\n                return;\n            }\n            \n            // other\n            \n            $job-\u003eperform(); // Default\n        }\n    }\n    \n```\n\nYou must add to a service provider.\n\n```php\n\n    public function boot()\n    {\n        // other code\n\n        $this-\u003eapp-\u003ebind(JobHandler::class, CustomHandler::class);\n        \n        // other code\n    }\n\n```\n\n\n### Recurring Jobs\nSometimes it's not enough simply to schedule one job, but you want to run jobs regularly.\nIn particular, maybe you have some batch operation that needs to get run once an hour and you don't care what\nworker runs it. Recurring jobs are specified much like other jobs:\n\n```php\n/**\n * Recurring Job\n */\n \n\\Queue::recur($intervalInSeconds, $jobClass, $data, $queueName); \n\n```\n\n### Sharding\n\nIf you compare Qless sharding with the DB sharding, then they have little in common.\nQless gets random write-connection for all jobs.\nData reading occurs in a circle from all connections.\n\nSetup redis connections for sharding in `config/database.php`:\n```php\nreturn [\n    'redis' =\u003e [\n        // ...\n        'qless' =\u003e [ /* ... */ ],\n        'connection2' =\u003e [ /* ... */ ],\n        'connection3' =\u003e [ /* ... */ ],\n        // ...\n    ],\n];\n```\n\nThen set the shards via `redis_connection` key in `config/queue.php` file:\n```php\nreturn [\n    'connections' =\u003e [\n        // ...\n        'qless' =\u003e [\n            // ...\n            'redis_connection' =\u003e [\n                'connection2',\n                'connection3',\n            ],\n            // ...\n        ],\n        // ...\n    ],\n];\n```\n\n## Testing\n\nYou can run the tests with:\n\n```bash\nvendor/bin/phpunit\n```\n\n## Contribution\n\nYou can contribute to this package by discovering bugs and opening issues. Please, add to which version of package you create pull request or issue. (e.g. [1.2] Fatal error on push job)\n\n## License\n\nLaravel Qless Queue driver is open-sourced software licensed under the MIT License.\nSee the [`LICENSE.txt`](https://github.com/pdffiller/laravel-queue-qless/blob/master/LICENSE.txt) file for more.\n\n\n© 2018-2019 PDFfiller\u003cbr\u003e\n\nAll rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdffiller%2Flaravel-queue-qless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdffiller%2Flaravel-queue-qless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdffiller%2Flaravel-queue-qless/lists"}