ETL: batch geocoding pipeline with rate limiting and resume support
還沒有人認領這個 Issue。
評估
- 難度
- 5/5
- 預估耗時
- 一週以上
- 新手友好度
- 25/100
- Issue 類型
- 功能
- 描述清晰度
- 需要釐清
- 活躍度
- 冷清
- 技術堆疊
- php
研究方向
Start by reading the SDK’s HttpTransportInterface and how Client accepts transports; those entry points are named in the issue, but no file paths or tests are provided. The scope depends on deciding whether retries belong in the core or an optional package and how checkpoint state should be stored. Done would require a settled design for retry/backoff and resume behavior across rate-limit signals.
由索引模型根據 Issue 內容生成。
描述
Problem
When geocoding large address lists (10k+ records), the API rate limits kick in. There is currently no built-in mechanism in the SDK to handle this gracefully.
Typical pattern people try
$client = new Client($token);
foreach ($addresses as $addr) {
$result = $client->get('https://geocoding.openapi.com/geocode', ['address' => $addr]);
// if rate limit hit (429), this throws immediately and the whole batch is lost
}
What would help
A retry/backoff decorator on top of HttpTransportInterface:
use Openapi\Transports\RetryTransport;
$client = new Client($token, new RetryTransport(
maxRetries: 3,
backoffMs: 500,
retryOn: [429, 503]
));
And a checkpoint mechanism to resume from the last successful record.
Open questions
- Should
RetryTransportbe part of the core SDK or a separate optional package? - Should the checkpoint state be file-based, Redis-based, or left to the consumer?
- Is 429 the only rate-limit signal used across all Openapi endpoints?
- 主要語言
- PHP
- 星號
- 20
- 分支
- 3
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
openapi/openapi-php-sdk 的其他 Issue
-
Improve PHPDoc Consistency Across the Codebase可能重新可做 @Seraphim200001 於 138 天前認領,目前沒有進行中的 PR。 未關閉
難度 4/5 3-5 天 新手友好度 48/100
openapi/openapi-php-sdk#36 · 3 則留言 ·
-
enhancement help wanted
難度 5/5 一週以上 新手友好度 25/100
openapi/openapi-php-sdk#34 ·
-
good first issue question
難度 5/5 一週以上 新手友好度 35/100
openapi/openapi-php-sdk#33 · 2 則留言 ·
-
enhancement
難度 5/5 一週以上 新手友好度 25/100
openapi/openapi-php-sdk#32 ·
-
help wanted question
難度 5/5 一週以上 新手友好度 25/100
openapi/openapi-php-sdk#31 ·
查看 openapi/openapi-php-sdk 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 62/100
維護者通常 1 天內回覆
-
Do not throw `WordPress.Security.EscapeOutput.OutputNotEscaped` on `apply_shortcodes()`可能已有人在做 @tbradsha 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 62/100
landsman/adminer-desktop#120 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 70/100
components-web-app/docs#227 ·
-
難度 1/5 1 小時以內 新手友好度 85/100