Skip to content

Consumer implementation #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 42 commits into from
Jan 20, 2025
Merged

Consumer implementation #15

merged 42 commits into from
Jan 20, 2025

Conversation

DanielePalaia
Copy link
Contributor

@DanielePalaia DanielePalaia commented Jan 14, 2025

This closes #12

Consumer side implementation.

The qpid-proton implementation already implements the receiving of messages through callbacks, so I kept this implementation.

The user can create a class which inherits from qpid-proton MessagingHandler (This symbol is now exported in our rabbitmq-amqp-python-client project) to manage the message consumed through the callback on_message of this class.

An utility class MessageAck has been implemented in order to manage the Acks to send back to the server (accept, discard, requeue, discard_with_annotations, requeue_with_annotations)

The example has been updated in ./examples/getting_started/main.py

DanielePalaia and others added 30 commits January 7, 2025 16:17
Signed-off-by: Gabriele Santomaggio <[email protected]>
* connection layer implementation

* WIP

* implementing Declare Exchange/Queue

* test for gabriele

* body encodiding

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding basic tests

* implementing bind

* adding user-defined exception

* Adding debugging info

* publisher implementation

* adding publisher basic test

* improve help_address utility functions

* modify example

* integrate qpid-proton lib

* implementing purge operation

* improving url helper

* cleaning up qpid unecessary folders and files

* some improvements

* implementing queue_info

* fixing queue arguments management

* better management of arguments

* improved arguments management during declare_queue

* adding purge test

* adding fixtures in tests

* adding a publisher test

* removing useless queue_type parameter

* removing receiver from publisher

---------

Signed-off-by: Gabriele Santomaggio <[email protected]>
Co-authored-by: DanielePalaia <daniele985@@gmail.com>
Co-authored-by: Gabriele Santomaggio <[email protected]>
@DanielePalaia DanielePalaia force-pushed the consumer_imp branch 3 times, most recently from 2454544 to a1cc43c Compare January 19, 2025 14:59
@DanielePalaia DanielePalaia force-pushed the consumer_imp branch 3 times, most recently from 3359ebb to 22410c2 Compare January 20, 2025 09:01
@DanielePalaia DanielePalaia changed the title Draft: Consumer imp Consumer implementation Jan 20, 2025
@DanielePalaia DanielePalaia marked this pull request as ready for review January 20, 2025 09:09
@DanielePalaia
Copy link
Contributor Author

Hey @Gsantomaggio @lukebakken I think we can start reviewing this.

add documentation

Signed-off-by: Gabriele Santomaggio <[email protected]>
@Gsantomaggio
Copy link
Member

@DanielePalaia in case of requeue or discard with annotations you need to validate the keys like:
https://github.com/rabbitmq/rabbitmq-amqp-dotnet-client/blob/main/RabbitMQ.AMQP.Client/Impl/DeliveryContext.cs#L65-L74

@DanielePalaia DanielePalaia merged commit 683a29f into main Jan 20, 2025
1 check passed
@DanielePalaia DanielePalaia deleted the consumer_imp branch January 20, 2025 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Consumer layer
2 participants