# Sqspoller SqsPoller Polls the messages from AWS SQS and process the messages in a controlled manner. It has capability configure number of message process threads and number of polling threads per queue ## Architecture ![plot](./images/SQS_Poller_V2.png) ## Installation Add this line to your application's Gemfile: ```ruby gem 'sqspoller' ``` And then execute: $ bundle Or install it yourself as: $ gem install sqspoller Install As service source install.sh ## Usage sudo systemctl status sqs_poller sudo systemctl start sqs_poller sudo systemctl stop sqs_poller sudo systemctl restart sqs_poller ## [Config Options](./lib/test.yml) ```yaml worker_configuration: worker_class: "Sqspoller::WorkerTask" http_method: "post" http_url: "http://localhost:5001/process" concurrency: 50 # => Total Number of service threads waiting_tasks_ratio: 2 production: my-queue: polling_threads: 4 max_number_of_messages: 10 message_types: [ ] my-queue1: polling_threads: 2 max_number_of_messages: 10 message_types: [ ] staging: my-queue: polling_threads: 2 max_number_of_messages: 10 message_types: [ ] ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/sqspoller. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.