Skip to content

Feature: Allow QueuePoller to be interrupted from another thread #2855

Open
@camsteffen

Description

@camsteffen

Describe the feature

There should be a way to cleanly stop/interrupt QueuePoller from another thread. It should immediately abort pending poll requests, but if the poll callback is executing, it should wait for that to complete before returning.

Use Case

I would to write code like Signal.trap("INT") { poller.stop }, so that I may use Ctrl+C to interrupt a daemon script that is polling SQS with QueuePoller.

Proposed Solution

The QueuePoller could have a method stop that can be invoked from any thread. If a call to poll is awaiting an SQS poll request, the request will be immediately aborted and poll will return normally. If poll is executing the callback when stop is invoked, then it will wait until the callback returns and then poll will return without making further poll requests.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

SDK version used

3.1.0

Environment details (OS name and version, etc.)

macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestA feature should be added or improved.help wantedWe are asking the community to submit a PR to resolve this issue.p3This is a minor priority issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions