Skip to content

Commit 054a0f3

Browse files
Rename receive() and peek() (send/schedule as well) as receive_messages() and peek_messages() respectively to align with other service bus SDKs. (#12222)
* Rename `receive()` and `peek()` as `receive_messages()` and `peek_messages()` respectively to align with other service bus SDKs. * Adjusts readmes, samples, tests, and migration guide accordingly. * Rename send and schedule to send_messages and schedule_messages * convert test_sb_client send/receive to _messages syntax * Update sdk/servicebus/azure-servicebus/CHANGELOG.md * Add breaking changes section with function renames within.
1 parent b0d481c commit 054a0f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+311
-306
lines changed

sdk/servicebus/azure-servicebus/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
* Fixed bug where sync AutoLockRenew does not shutdown itself timely.
88
* Fixed bug where async AutoLockRenew does not support context manager.
99

10+
**Breaking Changes**
11+
12+
* Renamed `receive()`, `peek()` `schedule()` and `send()` to `receive_messages()`, `peek_messages()`, `schedule_messages()` and `send_messages()` to align with other service bus SDKs.
13+
1014
## 7.0.0b3 (2020-06-08)
1115

1216
**New Features**

sdk/servicebus/azure-servicebus/README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,19 @@ with ServiceBusClient.from_connection_string(connstr) as client:
146146
with client.get_queue_sender(queue_name) as sender:
147147
# Sending a single message
148148
single_message = Message("Single message")
149-
sender.send(single_message)
149+
sender.send_messages(single_message)
150150

151151
# Sending a list of messages
152152
messages = [Message("First message"), Message("Second message")]
153-
sender.send(messages)
153+
sender.send_messages(messages)
154154
```
155155

156-
> **NOTE:** A message may be scheduled for delayed delivery using the `ServiceBusSender.schedule()` method, or by specifying `Message.scheduled_enqueue_time_utc` before calling `ServiceBusSender.send()`
156+
> **NOTE:** A message may be scheduled for delayed delivery using the `ServiceBusSender.schedule_messages()` method, or by specifying `Message.scheduled_enqueue_time_utc` before calling `ServiceBusSender.send_messages()`
157157
> For more detail on scheduling and schedule cancellation please see a sample [here](./samples/sync_samples/schedule_messages_and_cancellation.py).
158158
159159
### Receive messages from a queue
160160

161-
To receive from a queue, you can either perform an ad-hoc receive via "receiver.receive()" or receive persistently through the receiver itself.
161+
To receive from a queue, you can either perform an ad-hoc receive via "receiver.receive_messages()" or receive persistently through the receiver itself.
162162

163163
#### Receive messages from a queue through iterating over ServiceBusReceiver
164164

@@ -183,9 +183,9 @@ with ServiceBusClient.from_connection_string(connstr) as client:
183183
> See [AutoLockRenewer](#autolockrenew) for a helper to perform this in the background automatically.
184184
> Lock duration is set in Azure on the queue or topic itself.
185185
186-
#### [Receive messages from a queue through `ServiceBusReceiver.receive()`][receive_reference]
186+
#### [Receive messages from a queue through `ServiceBusReceiver.receive_messages()`][receive_reference]
187187

188-
> **NOTE:** `ServiceBusReceiver.receive()` receives a single or constrained list of messages through an ad-hoc method call, as opposed to receiving perpetually from the generator. It always returns a list.
188+
> **NOTE:** `ServiceBusReceiver.receive_messages()` receives a single or constrained list of messages through an ad-hoc method call, as opposed to receiving perpetually from the generator. It always returns a list.
189189
190190
```Python
191191
from azure.servicebus import ServiceBusClient
@@ -196,19 +196,19 @@ queue_name = os.environ['SERVICE_BUS_QUEUE_NAME']
196196

197197
with ServiceBusClient.from_connection_string(connstr) as client:
198198
with client.get_queue_receiver(queue_name) as receiver:
199-
received_message_array = receiver.receive(max_wait_time=10) # try to receive a single message within 10 seconds
199+
received_message_array = receiver.receive_messages(max_wait_time=10) # try to receive a single message within 10 seconds
200200
if received_message_array:
201201
print(str(received_message_array[0]))
202202

203203
with client.get_queue_receiver(queue_name, prefetch=5) as receiver:
204-
received_message_array = receiver.receive(max_batch_size=5, max_wait_time=10) # try to receive maximum 5 messages in a batch within 10 seconds
204+
received_message_array = receiver.receive_messages(max_batch_size=5, max_wait_time=10) # try to receive maximum 5 messages in a batch within 10 seconds
205205
for message in received_message_array:
206206
print(str(message))
207207
```
208208

209209
In this example, max_batch_size (and prefetch, as required by max_batch_size) declares the maximum number of messages to attempt receiving before hitting a max_wait_time as specified in seconds.
210210

211-
> **NOTE:** It should also be noted that `ServiceBusReceiver.peek()` is subtly different than receiving, as it does not lock the messages being peeked, and thus they cannot be settled.
211+
> **NOTE:** It should also be noted that `ServiceBusReceiver.peek_messages()` is subtly different than receiving, as it does not lock the messages being peeked, and thus they cannot be settled.
212212
213213

214214
### [Sending][session_send_reference] and [receiving][session_receive_reference] a message from a session enabled queue
@@ -225,7 +225,7 @@ session_id = os.environ['SERVICE_BUS_SESSION_ID']
225225

226226
with ServiceBusClient.from_connection_string(connstr) as client:
227227
with client.get_queue_sender(queue_name) as sender:
228-
sender.send(Message("Session Enabled Message", session_id=session_id))
228+
sender.send_messages(Message("Session Enabled Message", session_id=session_id))
229229

230230
# If session_id is null here, will receive from the first available session.
231231
with client.get_queue_session_receiver(queue_name, session_id) as receiver:
@@ -252,7 +252,7 @@ subscription_name = os.environ['SERVICE_BUS_SUBSCRIPTION_NAME']
252252

253253
with ServiceBusClient.from_connection_string(connstr) as client:
254254
with client.get_topic_sender(topic_name) as sender:
255-
sender.send(Message("Data"))
255+
sender.send_messages(Message("Data"))
256256

257257
# If session_id is null here, will receive from the first available session.
258258
with client.get_subscription_receiver(topic_name, subscription_name) as receiver:
@@ -386,7 +386,7 @@ renewer = AutoLockRenew()
386386
with ServiceBusClient.from_connection_string(connstr) as client:
387387
with client.get_queue_session_receiver(queue_name, session_id=session_id) as receiver:
388388
renewer.register(receiver.session, timeout=300) # Timeout for how long to maintain the lock for, in seconds.
389-
for msg in receiver.receive():
389+
for msg in receiver.receive_messages():
390390
renewer.register(msg, timeout=60)
391391
# Do your application logic here
392392
msg.complete()

sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_receiver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def from_connection_string(
284284
raise ValueError("Subscription name is missing for the topic. Please specify subscription_name.")
285285
return cls(**constructor_args)
286286

287-
def receive(self, max_batch_size=None, max_wait_time=None):
287+
def receive_messages(self, max_batch_size=None, max_wait_time=None):
288288
# type: (int, float) -> List[ReceivedMessage]
289289
"""Receive a batch of messages at once.
290290
@@ -372,7 +372,7 @@ def receive_deferred_messages(self, sequence_numbers):
372372
m._receiver = self # pylint: disable=protected-access
373373
return messages
374374

375-
def peek(self, message_count=1, sequence_number=None):
375+
def peek_messages(self, message_count=1, sequence_number=None):
376376
# type: (int, Optional[int]) -> List[PeekMessage]
377377
"""Browse messages currently pending in the queue.
378378

sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_sender.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def _send(self, message, timeout=None, last_exception=None):
190190
self._set_msg_timeout(timeout, last_exception)
191191
self._handler.send_message(message.message)
192192

193-
def schedule(self, messages, schedule_time_utc):
193+
def schedule_messages(self, messages, schedule_time_utc):
194194
# type: (Union[Message, List[Message]], datetime.datetime) -> List[int]
195195
"""Send Message or multiple Messages to be enqueued at a specific time.
196196
Returns a list of the sequence numbers of the enqueued messages.
@@ -295,7 +295,7 @@ def from_connection_string(
295295
)
296296
return cls(**constructor_args)
297297

298-
def send(self, message):
298+
def send_messages(self, message):
299299
# type: (Union[Message, BatchMessage, List[Message]]) -> None
300300
"""Sends message and blocks until acknowledgement is received or operation times out.
301301

sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_receiver_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def from_connection_string(
272272
raise ValueError("Subscription name is missing for the topic. Please specify subscription_name.")
273273
return cls(**constructor_args)
274274

275-
async def receive(self, max_batch_size=None, max_wait_time=None):
275+
async def receive_messages(self, max_batch_size=None, max_wait_time=None):
276276
# type: (int, float) -> List[ReceivedMessage]
277277
"""Receive a batch of messages at once.
278278
@@ -360,7 +360,7 @@ async def receive_deferred_messages(self, sequence_numbers):
360360
m._receiver = self # pylint: disable=protected-access
361361
return messages
362362

363-
async def peek(self, message_count=1, sequence_number=0):
363+
async def peek_messages(self, message_count=1, sequence_number=0):
364364
"""Browse messages currently pending in the queue.
365365
366366
Peeked messages are not removed from queue, nor are they locked. They cannot be completed,

sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_sender_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ async def _send(self, message, timeout=None, last_exception=None):
134134
self._set_msg_timeout(timeout, last_exception)
135135
await self._handler.send_message_async(message.message)
136136

137-
async def schedule(self, messages, schedule_time_utc):
137+
async def schedule_messages(self, messages, schedule_time_utc):
138138
# type: (Union[Message, List[Message]], datetime.datetime) -> List[int]
139139
"""Send Message or multiple Messages to be enqueued at a specific time by the service.
140140
Returns a list of the sequence numbers of the enqueued messages.
@@ -236,7 +236,7 @@ def from_connection_string(
236236
)
237237
return cls(**constructor_args)
238238

239-
async def send(self, message):
239+
async def send_messages(self, message):
240240
# type: (Union[Message, BatchMessage, List[Message]]) -> None
241241
"""Sends message and blocks until acknowledgement is received or operation times out.
242242

sdk/servicebus/azure-servicebus/migration_guide.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ As a user this will be largely transparent to you, as initialization will still
2525
the primary difference will be that rather than creating a queue_client, for instance, and then a sender off of that, you would simply
2626
create a servicebus queue sender off of your ServiceBusClient instance via the "get_queue_sender" method.
2727

28-
It should also be noted that many of the helper methods that previously existed on the intermediary client (e.g. QueueClient and Peek) now
29-
exist on the receiver (in the case of peek) or sender itself. This is to better consolidate functionality and align messaging link lifetime
28+
It should also be noted that many of the helper methods that previously existed on the intermediary client (e.g. QueueClient and `peek()`) now
29+
exist on the receiver (in the case of `peek()`) or sender itself. This is to better consolidate functionality and align messaging link lifetime
3030
semantics with the sender or receiver lifetime.
3131

3232
### Client constructors
@@ -40,27 +40,28 @@ semantics with the sender or receiver lifetime.
4040

4141
| In v0.50 | Equivalent in v7 | Sample |
4242
|---|---|---|
43-
| `QueueClient.from_connection_string().get_receiver().fetch_next() and ServiceBusClient.from_connection_string().get_queue().get_receiver().fetch_next()`| `ServiceBusClient.from_connection_string().get_queue_receiver().receive()`| [Get a receiver and receive a single batch of messages](./samples/sync_samples/receive_queue.py) |
43+
| `QueueClient.from_connection_string().get_receiver().fetch_next() and ServiceBusClient.from_connection_string().get_queue().get_receiver().fetch_next()`| `ServiceBusClient.from_connection_string().get_queue_receiver().receive_messages()`| [Get a receiver and receive a single batch of messages](./samples/sync_samples/receive_queue.py) |
44+
| `QueueClient.from_connection_string().get_receiver().peek() and ServiceBusClient.from_connection_string().get_queue().get_receiver().peek()`| `ServiceBusClient.from_connection_string().get_queue_receiver().peek_messages()`| [Get a receiver and receive a single batch of messages](./samples/sync_samples/receive_queue.py) |
4445

4546
### Sending messages
4647

4748
| In v0.50 | Equivalent in v7 | Sample |
4849
|---|---|---|
49-
| `QueueClient.from_connection_string().send() and ServiceBusClient.from_connection_string().get_queue().get_sender().send()`| `ServiceBusClient.from_connection_string().get_queue_sender().send()`| [Get a sender and send a message](./samples/sync_samples/send_queue.py) |
50-
| `queue_client.send(BatchMessage(["data 1", "data 2", ...]))`| `batch = queue_sender.create_batch() batch.add(Message("data 1")) queue_sender.send(batch)`| [Create and send a batch of messages](./samples/sync_samples/send_queue.py) |
50+
| `QueueClient.from_connection_string().send() and ServiceBusClient.from_connection_string().get_queue().get_sender().send()`| `ServiceBusClient.from_connection_string().get_queue_sender().send_messages()`| [Get a sender and send a message](./samples/sync_samples/send_queue.py) |
51+
| `queue_client.send(BatchMessage(["data 1", "data 2", ...]))`| `batch = queue_sender.create_batch() batch.add(Message("data 1")) queue_sender.send_messages(batch)`| [Create and send a batch of messages](./samples/sync_samples/send_queue.py) |
5152

5253
### Scheduling messages and cancelling scheduled messages
5354

5455
| In v0.50 | Equivalent in v7 | Sample |
5556
|---|---|---|
56-
| `queue_client.get_sender().schedule(schedule_time_utc, message1, message2)` | `sb_client.get_queue_sender().schedule([message1, message2], schedule_time_utc)` | [Schedule messages](./samples/sync_samples/schedule_messages_and_cancellation.py) |
57+
| `queue_client.get_sender().schedule(schedule_time_utc, message1, message2)` | `sb_client.get_queue_sender().schedule_messages([message1, message2], schedule_time_utc)` | [Schedule messages](./samples/sync_samples/schedule_messages_and_cancellation.py) |
5758
| `queue_client.get_sender().cancel_scheduled_messages(sequence_number1, sequence_number2)`| `sb_client.get_queue_sender().cancel_scheduled_messages([sequence_number1, sequence_number2])` | [Cancel scheduled messages](./samples/sync_samples/schedule_messages_and_cancellation.py)|
5859

5960
### Working with sessions
6061

6162
| In v0.50 | Equivalent in v7 | Sample |
6263
|---|---|---|
63-
| `queue_client.send(message, session='foo') and queue_client.get_sender(session='foo').send(message)`| `sb_client.get_queue_sender().send(Message('body', session_id='foo'))`| [Send a message to a session](./samples/sync_samples/session_send_receive.py) |
64+
| `queue_client.send(message, session='foo') and queue_client.get_sender(session='foo').send(message)`| `sb_client.get_queue_sender().send_messages(Message('body', session_id='foo'))`| [Send a message to a session](./samples/sync_samples/session_send_receive.py) |
6465
| `AutoLockRenew().register(queue_client.get_receiver(session='foo'))`| `AutoLockRenew().register(sb_client.get_queue_session_receiver(session_id='foo').session)`| [Access a session and ensure its lock is auto-renewed](./samples/sync_samples/session_send_receive.py) |
6566
| `receiver.get_session_state()` | `receiver.session.get_session_state()` | [Perform session specific operations on a receiver](./samples/sync_samples/session_send_receive.py)
6667

@@ -118,7 +119,7 @@ Becomes this in v7:
118119
with ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR) as client:
119120

120121
with client.get_queue_receiver(queue_name=QUEUE_NAME) as receiver:
121-
batch = receiver.receive(max_batch_size=10, max_wait_time=5)
122+
batch = receiver.receive_messages(max_batch_size=10, max_wait_time=5)
122123
for message in batch:
123124
print("Message: {}".format(message))
124125
message.complete()
@@ -148,12 +149,12 @@ with queue_client.get_sender() as sender:
148149
# Send one at a time.
149150
for i in range(100):
150151
message = Message("Sample message no. {}".format(i))
151-
sender.send(message)
152+
sender.schedule_messages(message)
152153

153154
# Send as a batch.
154155
messages_to_batch = [Message("Batch message no. {}".format(i)) for i in range(10)]
155156
batch = BatchMessage(messages_to_batch)
156-
sender.send(batch)
157+
sender.schedule_messages(batch)
157158
```
158159

159160
In v7:
@@ -164,11 +165,11 @@ with ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR) as client:
164165
# Sending one at a time.
165166
for i in range(100):
166167
message = Message("Sample message no. {}".format(i))
167-
sender.send(message)
168+
sender.schedule_messages(message)
168169

169170
# Send as a batch
170171
batch = new BatchMessage()
171172
for i in range(10):
172173
batch.add(Message("Batch message no. {}".format(i)))
173-
sender.send(batch)
174+
sender.schedule_messages(batch)
174175
```

sdk/servicebus/azure-servicebus/samples/async_samples/proxy_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
async def send_single_message(sender):
3232
message = Message("DATA" * 64)
33-
await sender.send(message)
33+
await sender.send_messages(message)
3434

3535

3636
async def main():

sdk/servicebus/azure-servicebus/samples/async_samples/receive_deadlettered_messages_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ async def main():
2525
async with servicebus_client:
2626
receiver = servicebus_client.get_queue_deadletter_receiver(queue_name=QUEUE_NAME, prefetch=10)
2727
async with receiver:
28-
received_msgs = await receiver.receive(max_batch_size=10, max_wait_time=5)
28+
received_msgs = await receiver.receive_messages(max_batch_size=10, max_wait_time=5)
2929
for msg in received_msgs:
3030
print(str(msg))
3131
await msg.complete()

sdk/servicebus/azure-servicebus/samples/async_samples/receive_deferred_message_queue_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def main():
2626
receiver = servicebus_client.get_queue_receiver(queue_name=QUEUE_NAME, prefetch=10)
2727

2828
async with receiver:
29-
received_msgs = await receiver.receive(max_batch_size=10, max_wait_time=5)
29+
received_msgs = await receiver.receive_messages(max_batch_size=10, max_wait_time=5)
3030
deferred_sequenced_numbers = []
3131
for msg in received_msgs:
3232
print("Deferring msg: {}".format(str(msg)))

0 commit comments

Comments
 (0)