{"id":32173182,"url":"https://github.com/vishalkuo/e_poller","last_synced_at":"2026-02-22T19:03:19.208Z","repository":{"id":57495638,"uuid":"112995783","full_name":"vishalkuo/e_poller","owner":"vishalkuo","description":"Yet another SQS long poller","archived":false,"fork":false,"pushed_at":"2017-12-10T03:40:18.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-21T18:51:22.031Z","etag":null,"topics":["elixir","message-queue","poller","sqs","sqs-poller"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/vishalkuo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-04T04:47:02.000Z","updated_at":"2025-02-14T15:52:36.000Z","dependencies_parsed_at":"2022-08-28T19:51:48.821Z","dependency_job_id":null,"html_url":"https://github.com/vishalkuo/e_poller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vishalkuo/e_poller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalkuo%2Fe_poller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalkuo%2Fe_poller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalkuo%2Fe_poller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalkuo%2Fe_poller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vishalkuo","download_url":"https://codeload.github.com/vishalkuo/e_poller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalkuo%2Fe_poller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29723574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T15:10:41.462Z","status":"ssl_error","status_checked_at":"2026-02-22T15:10:04.636Z","response_time":110,"last_error":"SSL_read: 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":["elixir","message-queue","poller","sqs","sqs-poller"],"created_at":"2025-10-21T18:50:23.558Z","updated_at":"2026-02-22T19:03:19.202Z","avatar_url":"https://github.com/vishalkuo.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EPoller\n\nAn SQS long poller meant to simulate the functionality seen in the [Ruby SQS SDK](http://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SQS/QueuePoller.html). \n\n[Documentation](https://hexdocs.pm/e_poller/api-reference.html)\n\n### Note About Authentication\n\nIf you're planning on using config file authentication, the following needs to be added to your\n`config.exs`:\n\n```elixir\nconfig :ex_aws,\n  access_key_id: [{:system, \"AWS_ACCESS_KEY_ID\"}, {:awscli, \"default\", 30}, :instance_role],\n  secret_access_key: [{:system, \"AWS_SECRET_ACCESS_KEY\"}, {:awscli, \"default\", 30}, :instance_role]\n```\n\n## Installation\n\nAdd `e_poller` to your `mix.exs` file\n\n```elixir\ndef deps do\n  [{:e_poller, \"~\u003e 0.1.1\"}]\nend\n```\n\nand run `$ mix deps.get`.\n\n## Usage\n```elixir\niex(1)\u003e {:ok, poller_pid} = EPoller.start_link(\"my_worker_queue\", fn m -\u003e IO.inspect m end)\n{:ok, #PID\u003c0.234.0\u003e}\niex(2)\u003e EPoller.poll(poller_pid)\n\"1\\n\"\n\"1\\n2\"\n\"1\\n2\"\n:ok\n```\nEvery poller process is initialized with a queue name and a message handler function. Further configuration, such as region, visibility timeout, and poll duration, can also be configured at this step. \n\nEvery time the queue is polled, the handler function is called for each message. If the handler function doesn't raise an error, the message is assumed to have been parsed correctly and the message is deleted from the queue. \n\n### Configuration\nPollers can also be initialized with config variables:\n```elixir\niex(1)\u003e config = [wait_time_seconds: 10, visibility_timeout: 2,region: \"us-west-1\"]\niex(2)\u003e {:ok, poller_pid} = EPoller.start_link(\"my_worker_queue\", fn m -\u003e IO.inspect m end, config)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishalkuo%2Fe_poller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvishalkuo%2Fe_poller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishalkuo%2Fe_poller/lists"}