{"id":20138481,"url":"https://github.com/thiagobarradas/queue-consumer","last_synced_at":"2025-04-09T18:08:49.675Z","repository":{"id":52894913,"uuid":"202499993","full_name":"ThiagoBarradas/queue-consumer","owner":"ThiagoBarradas","description":"A simple consumer for Rabbit MQ sending a post with basic auth and all structure for retry and dead queue.","archived":false,"fork":false,"pushed_at":"2023-03-21T17:47:29.000Z","size":83,"stargazers_count":6,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T20:05:57.257Z","etag":null,"topics":["amqp","consumer","dead","docker","dotnet-core","exchange","http","queue","rabbitmq","retry"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/thiagobarradas/queue-consumer","language":"C#","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/ThiagoBarradas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2019-08-15T08:03:48.000Z","updated_at":"2023-04-25T18:57:24.000Z","dependencies_parsed_at":"2024-11-13T21:40:47.179Z","dependency_job_id":"ccc8b295-0de6-4cf8-89b6-639f7cfb8640","html_url":"https://github.com/ThiagoBarradas/queue-consumer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThiagoBarradas%2Fqueue-consumer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThiagoBarradas%2Fqueue-consumer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThiagoBarradas%2Fqueue-consumer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThiagoBarradas%2Fqueue-consumer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThiagoBarradas","download_url":"https://codeload.github.com/ThiagoBarradas/queue-consumer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085012,"owners_count":21045135,"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":["amqp","consumer","dead","docker","dotnet-core","exchange","http","queue","rabbitmq","retry"],"created_at":"2024-11-13T21:38:18.770Z","updated_at":"2025-04-09T18:08:49.657Z","avatar_url":"https://github.com/ThiagoBarradas.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://barradas.visualstudio.com/Contributions/_apis/build/status/Queue%20Consumer%20Worker?branchName=master)](https://barradas.visualstudio.com/Contributions/_build/latest?definitionId=5\u0026branchName=master)\n\n# QueueConsumer\n \nA simple consumer for Rabbit MQ sending a post with basic auth and all structure for retry and dead queue; \n\n## Running with Docker\n\n```\ndocker run --name queue-consumer -d \\\n    -e QueueConnectionString=\"amqp://user:password@localhost:5672/current-vh\" \\\n    -e QueueName=my-demo-queue \\\n    -e Url=http://pruu.herokuapp.com/dump/queue-consumer \\\n    -e User=user \\\n    -e Pass=password \\\n    -e AuthToken=authorization-header \n    -e TimeoutInSeconds=30 \\\n    -e MaxThreads=100 \\\n    -e PopulateQueueQuantity=10000 \\\n    -e RetryCount=5 \\        \n    -e RetryTTL=300000 \\\n    -e CreateQueue=true \\\n    thiagobarradas/queue-consumer:latest\n```\n\n## Configuration\n\nSet environment variables to setup QueueConsumer:\n\n| Env Var | Type | Required | Description | e.g. |\n| ------- | ---- | -------- | ----------- | ---- |\n| `QueueConnectionString`        | string | yes | rabbit connection | `amqp://user:pass@localhost:5672/current-vh` |\n| `QueueName`                    | string | yes | origin queue name and prefix for retry/dead queues | `some-queue` |\n| `Url`                          | string | yes | url to send post with content as json body | `https://domain.com/service/v1/hook` |\n| `User`                         | string | no  | basic auth username | `username` |\n| `Pass`                         | string | no  | basic auth password | `password` |\n| `AuthToken`                    | string | no  | authorization header | `some-token` |\n| `TimeoutInSeconds`             | int    | no  | timeout to send post | `60` default |\n| `MaxThreads`                   | int    | no  | thread parallel max number | `20` default |\n| `PopulateQueueQuantity`        | int    | no  | send messages to populate main queue, `0` to disable | `0` default |\n| `RetryCount `                  | int    | no  | max number of retries, `0` to disable | `5` default |\n| `RetryTTL`                     | int    | no  | ttl in ms to retry a message, `0` to disable | `60000` default |\n| `ShouldUseUrlWithDynamicMatch` | bool   | no  | set the part of the Url that is between {{}} with the property value comming from the body message | 'https://domain.com/service/{{v1}}/hook' |\n\nOthers properties:\n\n- `StatusCodeAcceptToSuccess` \n- `LogDomain` \n- `LogApplication` \n- `LogBlacklist` \n- `LogDebugEnabled` \n- `LogSeqEnabled` \n- `LogSeqUrl` \n- `LogSeqApiKey` \n- `LogSplunkEnabled` \n- `LogSplunkUrl` \n- `LogSplunkToken` \n- `LogSplunkIndex` \n- `LogSplunkCompany` \n- `LogNewRelicEnabled` \n- `NEW_RELIC_APP_NAME` \n- `NEW_RELIC_LICENSE_KEY` \n- `CORECLR_ENABLE_PROFILING` \n\n### Generated queues/exchanges/routing-keys\n\n| Queue | Exchange | Routing Key |\n| ----- | -------- | ----------- | \n| `{QueueName}` | `{QueueName}-exchange` | `{QueueName}-routing-key` |\n| `{QueueName}-retry` | `{QueueName}-retry-exchange` | `{QueueName}-retry-routing-key` |\n| `{QueueName}-dead` | `{QueueName}-dead-exchange` | `{QueueName}-dead-routing-key` |\n\n## How can I contribute?\n\nPlease, refer to [CONTRIBUTING](.github/CONTRIBUTING.md)\n\n## Found something strange or need a new feature?\n\nOpen a new Issue following our issue template [ISSUE TEMPLATE](.github/ISSUE_TEMPLATE.md)\n\n## Did you like it? Please, make a donate :)\n\nif you liked this project, please make a contribution and help to keep this and other initiatives, send me some Satochis.\n\nBTC Wallet: `1G535x1rYdMo9CNdTGK3eG6XJddBHdaqfX`\n\n![1G535x1rYdMo9CNdTGK3eG6XJddBHdaqfX](https://i.imgur.com/mN7ueoE.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagobarradas%2Fqueue-consumer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiagobarradas%2Fqueue-consumer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagobarradas%2Fqueue-consumer/lists"}