Skip to content

Commit 012db47

Browse files
author
brentru
committed
raise error for subsequent c2d requests
1 parent 982fd58 commit 012db47

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

adafruit_azureiot.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,17 @@ def _parse_http_status(status_code, status_reason):
7979
def get_hub_message(self, device_id):
8080
"""Returns a message from a Microsoft Azure IoT Hub (Cloud-to-Device), or -1
8181
if the message queue is empty.
82-
NOTE: HTTP Cloud-to-Device messages are throttled. Poll every 25 minutes, or more.
82+
NOTE: HTTP Cloud-to-Device messages are throttled. Poll every 25+ minutes.
8383
:param int device_id: Device identifier.
8484
"""
8585
reject_message = True
8686
# get a device-bound notification
8787
path = "{0}/devices/{1}/messages/deviceBound?api-version={2}".format(self._iot_hub_url,
8888
device_id, AZ_API_VER)
89-
data = self._get(path, is_c2d=True)
89+
try:
90+
data = self._get(path, is_c2d=True)
91+
except RuntimeError:
92+
raise RuntimeError('HTTP C2D Messages are HEAVILY throttled, poll every 25 min.')
9093
if data == 204: # device's message queue is empty
9194
return -1
9295
etag = data[1]['etag']

examples/azureiot_simpletest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
print('Data Sent!')
4343

4444
# Receive a Cloud-to-Device message
45+
# NOTE: HTTP Cloud-to-Device messages are HEAVILY throttled over HTTP.
46+
# Microsoft suggests a polling interval of the below code for every 25 minutes.
4547
print('Receiving a message from an Azure IoT Hub...')
4648
message = hub.get_hub_message(device_id)
4749
if message == -1:

0 commit comments

Comments
 (0)