Feature: Allow QueuePoller to be interrupted from another thread

未关闭
#2,855 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
38/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
停滞
技术栈
aws, ruby
领域
backend, cloud

调研方向

首先定位 QueuePoller 的实现,以及等待 SQS 请求或运行 poll 回调的 poll 入口点。跟踪轮询和回调执行如何跨线程进行协调。完成的标准是:stop 调用会中止待处理的 poll,等待活动中的回调,并阻止后续的 poll 请求。

由索引模型根据 Issue 内容生成。

描述

feature-request
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

主要语言
Ruby
星标
3.7k
派生
1.2k
平均合并
2 天 3 小时
30 天内合并 PR
28

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aws/aws-sdk-ruby 的其他 Issue

查看 aws/aws-sdk-ruby 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。