Skip to content

Commit cd021e4

Browse files
committed
fix: update example and fix issue in cases there is no messages
1 parent e0f059d commit cd021e4

2 files changed

Lines changed: 28 additions & 10 deletions

File tree

examples/example_broker.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,51 @@
88

99
import asyncio
1010

11-
import boto3
1211
import dotenv
12+
from aiobotocore.session import get_session
1313

1414
from taskiq_sqs import S3Bucket, S3ResultBackend, SQSBroker
1515

1616

1717
dotenv.load_dotenv()
1818

1919
QUEUE_NAME = "my-queue"
20-
QUEUE_URL = f"http://localhost:4566/000000000000/{QUEUE_NAME}"
21-
22-
23-
boto3.client("sqs").create_queue(QueueName=QUEUE_NAME)
24-
25-
broker = SQSBroker(QUEUE_URL, sqs_region_override="us-east-1").with_result_backend(
26-
S3ResultBackend(bucket=S3Bucket(name="response-bucket"))
20+
ENDPOINT_URL = "http://localhost:4566"
21+
AWS_REGION = "us-east-1"
22+
23+
24+
broker = SQSBroker(
25+
queue_name=QUEUE_NAME,
26+
endpoint_url=ENDPOINT_URL,
27+
aws_region_name=AWS_REGION,
28+
).with_result_backend(
29+
S3ResultBackend(
30+
bucket=S3Bucket(name="response-bucket"),
31+
endpoint_url=ENDPOINT_URL,
32+
aws_region_name=AWS_REGION,
33+
),
2734
)
2835

2936

3037
@broker.task()
3138
async def i_love_aws() -> None:
3239
"""I hope my cloud bill doesn't get too high!"""
33-
await asyncio.sleep(5.5)
40+
await asyncio.sleep(2)
3441
print("Hello there!")
3542

3643

44+
async def ensure_queue_exists() -> None:
45+
session = get_session()
46+
async with session.create_client(
47+
"sqs",
48+
region_name=AWS_REGION,
49+
endpoint_url=ENDPOINT_URL,
50+
) as sqs:
51+
await sqs.create_queue(QueueName=QUEUE_NAME)
52+
53+
3754
async def main() -> None:
55+
await ensure_queue_exists()
3856
await broker.startup()
3957
task = await i_love_aws.kiq()
4058
print(await task.wait_result())

src/taskiq_sqs/broker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ async def listen(self) -> AsyncGenerator[AckableMessage, None]:
216216
MaxNumberOfMessages=self._max_number_of_messages,
217217
WaitTimeSeconds=self._wait_time_seconds,
218218
)
219-
messages: list[MessageTypeDef] = results["Messages"]
219+
messages: list[MessageTypeDef] = results.get("Messages", [])
220220

221221
for message in messages:
222222
if (body := message.get("Body")) and (receipt_handle := message.get("ReceiptHandle")):

0 commit comments

Comments
 (0)