{"id":17540088,"url":"https://github.com/reiterus/rabbitmq-php-orchestra","last_synced_at":"2026-05-04T12:37:36.501Z","repository":{"id":190975211,"uuid":"683675200","full_name":"reiterus/rabbitmq-php-orchestra","owner":"reiterus","description":"RabbitMQ examples with PHP consumers inside Docker","archived":false,"fork":false,"pushed_at":"2024-01-19T07:47:23.000Z","size":261,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T14:18:37.177Z","etag":null,"topics":["consumer","docker","docker-compose","php","php8","rabbitmq","worker"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/reiterus.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-27T10:49:50.000Z","updated_at":"2023-08-27T11:18:09.000Z","dependencies_parsed_at":"2023-08-27T13:38:53.534Z","dependency_job_id":"5e4dd58d-e4de-4a9d-acd7-dfe50bf24371","html_url":"https://github.com/reiterus/rabbitmq-php-orchestra","commit_stats":null,"previous_names":["reiterus/rabbitmq-php-orchestra"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reiterus%2Frabbitmq-php-orchestra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reiterus%2Frabbitmq-php-orchestra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reiterus%2Frabbitmq-php-orchestra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reiterus%2Frabbitmq-php-orchestra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reiterus","download_url":"https://codeload.github.com/reiterus/rabbitmq-php-orchestra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140565,"owners_count":20729797,"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":["consumer","docker","docker-compose","php","php8","rabbitmq","worker"],"created_at":"2024-10-20T22:08:08.365Z","updated_at":"2026-05-04T12:37:31.469Z","avatar_url":"https://github.com/reiterus.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RabbitMQ with PHP inside Docker\n\nThis repository will help reproduce examples of working with RabbitMQ queues for the PHP language using Docker containers.\n\nThe result of receiving and processing the task from the broker will be a txt file like `case_fanout_2023-08-26_11-57-00.txt`.\n\nFor all consumer services, one pre-generated image will be used: **rabbitmq-php-orchestra**. Its size is 117 megabytes.\n\nThe makefile contains the most useful commands.\n\n\u003e Stress testing involves printing **100 million points** per cycle **for each consumer for each case**.\n\n#### The algorithm is very simple:\n- git clone... \n- `make upb`\n- wait a little\n- `make publish` or `make publish_direct`\n- check txt-file for the actual case\n- profit\n\nEnjoy!\n\n### Make commands\nList of commands\n\u003cdetails\u003e\n  \u003csummary\u003edetails...\u003c/summary\u003e\n\n* publish: `docker-compose exec case_hello php publish.php`\n* publish_all: `make publish ; make publish_direct ; make publish_fanout ; make publish_topic`\n* publish_direct: `docker-compose exec case_direct php case/direct/publish.php`\n* publish_fanout: `docker-compose exec case_fanout php case/fanout/publish.php`\n* publish_topic: `docker-compose exec case_topic php case/topic/publish.php`\n* logs: `docker-compose logs -ft`\n* ps: `docker-compose ps`\n* down: `docker-compose down`\n* sdown: `docker-compose down \u0026 rm -f *.txt`\n* fdown: `docker-compose down \u0026 rm -f *.txt \u0026 rm -rf vendor`\n* upd: `docker-compose up -d`\n* upb: `docker-compose up -d --build --remove-orphans`\n* stats: `docker ps -q | xargs  docker stats --no-stream`\n\u003c/details\u003e\n\n##### Complete start of the orchestra\n```shell\nmake upb\n```\n\n##### Complete stop of the orchestra\n```shell\nmake fdown\n```\n\n##### Publish \"hello\" task\n```shell\nmake publish\n```\n\n##### Publish some exchange task\n```shell\nmake publish_fanout\n```\n\nAvailable examples of exchanges:\n- fanout\n- direct\n- topic\n\n##### Get stats\n```shell\nmake stats\n```\n\n### Environment\nList of environment variables\n\u003cdetails\u003e\n  \u003csummary\u003edetails...\u003c/summary\u003e\n\n* RMQ_IMAGE: image name created by the builder\n* RMQ_STRESS_TEST: enable/disable stress testing\n* RMQ_CASE: some exchange case (if empty - hello case)\n* RMQ_IS_BUILDER: is service builder or not\n* RMQ_HOST: rabbitmq hostname\n* RMQ_PORT: rabbitmq port\n* RMQ_PORT_ADMIN: rabbitmq admin panel port\n* RMQ_LOGIN: rabbitmq user login (php code)\n* RMQ_PASSWORD: rabbitmq user password (php code)\n* RMQ_CONSUMER: consumer for actual case\n* RABBITMQ_DEFAULT_USER: user login\n* RABBITMQ_DEFAULT_PASS: user password\n\u003c/details\u003e\n\n### Screenshots\n##### Statistics at rest\n![Statistics at rest](img/stats_01.png \"Statistics at rest\")\n##### Full load statistics\n![Full load statistics](img/stats_02.png \"Full load statistics\")\n##### Rabbit is not ready yet\n![Rabbit is not ready yet](img/case_01.png \"Rabbit is not ready yet\")\n##### Rabbit is ready now\n![Rabbit is ready now](img/case_02.png \"Rabbit is ready now\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freiterus%2Frabbitmq-php-orchestra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freiterus%2Frabbitmq-php-orchestra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freiterus%2Frabbitmq-php-orchestra/lists"}