Skip to content

Commit

Permalink
Merge pull request #182 from DamirDenis-Tudor/ktor-server-rabbitmq
Browse files Browse the repository at this point in the history
Update ktor-server-rabbitmq plugin to a version that resolves installation issues.
  • Loading branch information
bjhham authored Jan 17, 2025
2 parents e3f2b28 + c62b83a commit fd02a08
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

### Installation
```kotlin
install(KabbitMQ) {
install(RabbitMQ) {
uri = "amqp://<user>:<password>@<address>:<port>"
defaultConnectionName = "<default_connection>"
connectionAttempts = 20
Expand Down Expand Up @@ -74,6 +74,20 @@ rabbitmq {
}
```

### Consumer Example With Dispatchers.IO
```kotlin
rabbitmq {
basicConsume {
autoAck = true
queue = "demo-queue"
dispatcher = Dispatchers.IO
deliverCallback<String> { tag, message ->
logger.info("Received message: $message")
}
}
}
```

### Library Calls Example
```kotlin
rabbitmq {
Expand All @@ -95,7 +109,4 @@ rabbitmq {
basicConsume("demo-queue", true, consumer)
}
}
}
```

### For additional details check [repo](https://github.com/DamirDenis-Tudor/ktor-server-rabbitmq).
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.basicConsume
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.basicPublish
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.exchangeDeclare
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.queueBind
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.queueDeclare
import io.github.damir.denis.tudor.ktor.server.rabbitmq.plugin.RabbitMQ
import io.github.damir.denis.tudor.ktor.server.rabbitmq.plugin.rabbitmq
import io.github.damir.denis.tudor.ktor.server.rabbitmq.RabbitMQ
import io.github.damir.denis.tudor.ktor.server.rabbitmq.dsl.*
import io.github.damir.denis.tudor.ktor.server.rabbitmq.rabbitMQ
import io.ktor.server.application.*
import io.ktor.server.request.receiveText
import io.ktor.server.response.respondText
import io.ktor.server.routing.application
import io.ktor.server.routing.get
import io.ktor.server.routing.routing
import kotlinx.coroutines.Dispatchers

fun Application.install() {
install(RabbitMQ)
install(RabbitMQ) {
uri = "amqp://<user>:<password>@<address>:<port>"
defaultConnectionName = "default-connection"
dispatcherThreadPollSize = 2
tlsEnabled = false
}

rabbitmq {
queueBind {
Expand All @@ -29,6 +29,9 @@ fun Application.install() {
durable = true
}
}
}

rabbitmq {
queueBind {
queue = "test-queue"
exchange = "test-exchange"
Expand All @@ -44,15 +47,19 @@ fun Application.install() {
"x-dead-letter-routing-key" to "dlq-dlx"
)
}
}.onSuccess{ response->
log.info("Successfully bind queue: $response")
}.onFailure{ error ->
log.error("Failed to bind queue: $error")
}
}

routing {
get("/rabbitmq") {
rabbitmq {
basicPublish {
exchange = "demo-exchange"
routingKey = "demo-routing-key"
exchange = "test-exchange"
routingKey = "test-routing-key"
message { "Hello Ktor!" }
}
}
Expand All @@ -63,7 +70,8 @@ fun Application.install() {
rabbitmq {
basicConsume {
autoAck = true
queue = "demo-queue"
queue = "test-queue"
dispatcher = Dispatchers.rabbitMQ
deliverCallback<String> { tag, message ->
log.debug("Received message: $message")
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"[3.0,)": io.github.damirdenis-tudor:ktor-server-rabbitmq:1.2.2+
"[3.0,)": io.github.damirdenis-tudor:ktor-server-rabbitmq:1.3.+

0 comments on commit fd02a08

Please sign in to comment.