Bulk publish: per-message metadata in publish_events
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 76/100
調査の方向性
Start in dapr/clients/grpc/client.py#L544 and dapr/aio/clients/grpc/client.py#L493, where publish_events builds BulkPublishRequestEntry values from entry_id, event, and content_type. Add support for BulkPublishEntry metadata while preserving bytes and str entries, and ensure publish_metadata is copied to every entry; done means per-message metadata and request-level metadata reach bulk publish envelopes.
索引モデルが issue の本文から書いたものです。
説明
Describe the feature
publish_events does not populate BulkPublishRequestEntry.metadata, so per-message metadata (partition key, session id, Kafka key) cannot be set. Entries are built from entry_id, event and content_type only, in both dapr/clients/grpc/client.py#L544 and dapr/aio/clients/grpc/client.py#L493.
The runtime supports it, and go-sdk (PublishEventsEvent.Metadata), java-sdk (BulkPublishEntry) and js-sdk (PubSubBulkPublishMessage.metadata) all expose it. Same request against dotnet-sdk in dapr/dotnet-sdk#1198.
Side effect: the runtime only merges request-level metadata into entries that already have metadata, so publish_metadata never reaches the envelope either. On 1.18.4 with ttlInSeconds, publish_event sets expiration on the cloudevent and publish_events does not.
Proposed API, mirroring go-sdk:
d.publish_events(
pubsub_name='pubsub',
topic_name='TOPIC_A',
data=[
BulkPublishEntry(event='{"n": 1}', metadata={'partitionKey': 'tenant-a'}),
BulkPublishEntry(event='{"n": 2}', metadata={'partitionKey': 'tenant-b'}),
'{"n": 3}',
],
)
Existing bytes/str entries keep working, and publish_metadata should be copied onto every entry.
Release Note
RELEASE NOTE: ADD Per-message metadata support in publish_events bulk publish.
- 主要言語
- Python
- スター
- 272
- フォーク
- 152
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 4
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dapr/python-sdk のほかの issue
-
dapr-ext-workflow good first issue kind/enhancement P2
難易度 2/5 1〜2日 初心者へのやさしさ 72/100
dapr/python-sdk#853 · コメント 4 件 ·
-
dapr-ext-workflow kind/enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 78/100
dapr/python-sdk#1213 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
dapr/python-sdk#1200 ·
-
dapr-ext-workflow kind/enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
dapr/python-sdk#1188 ·
-
dapr-ext-workflow kind/enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
dapr/python-sdk#1181 · 担当者 1 名 ·
dapr/python-sdk の issue をすべて見る
似ている issue
-
bug confirmed issue
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
open-webui/open-webui#30750 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 90/100