Skip to content

Commit 90605a2

Browse files
authored
Refactor queues example (#89)
1 parent 2088af9 commit 90605a2

File tree

4 files changed

+36
-57
lines changed

4 files changed

+36
-57
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (c) 2024 Oracle and/or its affiliates.
3+
* Licensed under the Universal Permissive License v 1.0 as shown at
4+
* https://oss.oracle.com/licenses/upl.
5+
*/
6+
7+
package common
8+
9+
import "time"
10+
11+
const (
12+
QueueNameOrders = "orders-queue"
13+
QueueNameProcessed = "processed-queue"
14+
)
15+
16+
// Order represents a fictitious order.
17+
type Order struct {
18+
OrderID string `json:"orderID"`
19+
Customer string `json:"customer"`
20+
OrderStatus string `json:"orderStatus"`
21+
OrderTotal float32 `json:"orderTotal"`
22+
CreateTime time.Time `json:"createTime"`
23+
CompleteTime time.Time `json:"completeTime"`
24+
OrderProcessingTime time.Duration `json:"orderProcessingTime"`
25+
}

examples/queues/blocking/processor/main.go

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,15 @@ package main
1313
import (
1414
"context"
1515
"github.com/oracle/coherence-go-client/coherence"
16+
"github.com/oracle/coherence-go-client/examples/queues/blocking/common"
1617
"log"
1718
"time"
1819
)
1920

20-
const (
21-
queueNameProcessed = "processed-queue"
22-
queueNameOrders = "orders-queue"
23-
)
24-
25-
// Order represents a fictitious order.
26-
type Order struct {
27-
OrderID string `json:"orderID"`
28-
Customer string `json:"customer"`
29-
OrderStatus string `json:"orderStatus"`
30-
OrderTotal float32 `json:"orderTotal"`
31-
CreateTime time.Time `json:"createTime"`
32-
CompleteTime time.Time `json:"completeTime"`
33-
OrderProcessingTime time.Duration `json:"orderProcessingTime"`
34-
}
35-
3621
func main() {
3722
var (
3823
ctx = context.Background()
39-
order *Order
24+
order *common.Order
4025
err error
4126
processed int
4227
processing bool
@@ -49,12 +34,12 @@ func main() {
4934
}
5035
defer session.Close()
5136

52-
blockingQueue, err := coherence.GetBlockingNamedQueue[Order](ctx, session, queueNameOrders)
37+
blockingQueue, err := coherence.GetBlockingNamedQueue[common.Order](ctx, session, common.QueueNameOrders)
5338
if err != nil {
5439
panic(err)
5540
}
5641

57-
processedQueue, err := coherence.GetNamedQueue[Order](ctx, session, queueNameProcessed)
42+
processedQueue, err := coherence.GetNamedQueue[common.Order](ctx, session, common.QueueNameProcessed)
5843
if err != nil {
5944
panic(err)
6045
}

examples/queues/blocking/publisher/main.go

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,14 @@ import (
1414
"fmt"
1515
"github.com/google/uuid"
1616
"github.com/oracle/coherence-go-client/coherence"
17+
"github.com/oracle/coherence-go-client/examples/queues/blocking/common"
1718
"log"
1819
"math/rand"
1920
"os"
2021
"strconv"
2122
"time"
2223
)
2324

24-
const queueNameOrders = "orders-queue"
25-
26-
// Order represents a fictitious order.
27-
type Order struct {
28-
OrderID string `json:"orderID"`
29-
Customer string `json:"customer"`
30-
OrderStatus string `json:"orderStatus"`
31-
OrderTotal float32 `json:"orderTotal"`
32-
CreateTime time.Time `json:"createTime"`
33-
CompleteTime time.Time `json:"completeTime"`
34-
OrderProcessingTime time.Duration `json:"orderProcessingTime"`
35-
}
36-
3725
func main() {
3826
var (
3927
ctx = context.Background()
@@ -47,32 +35,27 @@ func main() {
4735
return
4836
}
4937

50-
if numOrders, err = strconv.Atoi(os.Args[1]); err != nil {
38+
if numOrders, err = strconv.Atoi(os.Args[1]); err != nil || numOrders < 0 {
5139
log.Println("Invalid value for number of orders")
5240
return
5341
}
5442

55-
if numOrders <= 0 {
56-
log.Println("Enter a positive number")
57-
return
58-
}
59-
6043
// create a new Session to the default gRPC port of 1408 using plain text
6144
session, err := coherence.NewSession(ctx, coherence.WithPlainText())
6245
if err != nil {
6346
panic(err)
6447
}
6548
defer session.Close()
6649

67-
orderQueue, err := coherence.GetNamedQueue[Order](ctx, session, queueNameOrders)
50+
orderQueue, err := coherence.GetNamedQueue[common.Order](ctx, session, common.QueueNameOrders)
6851
if err != nil {
6952
panic(err)
7053
}
7154

7255
defer orderQueue.Close()
7356

7457
for i := 1; i <= numOrders; i++ {
75-
newOrder := Order{
58+
newOrder := common.Order{
7659
OrderID: uuid.New().String(),
7760
Customer: fmt.Sprintf("Customer %d", i),
7861
OrderStatus: "NEW",

examples/queues/blocking/subscriber/main.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,15 @@ import (
1414
"context"
1515
"fmt"
1616
"github.com/oracle/coherence-go-client/coherence"
17+
"github.com/oracle/coherence-go-client/examples/queues/blocking/common"
1718
"log"
1819
"time"
1920
)
2021

21-
const (
22-
queueNameProcessed = "processed-queue"
23-
)
24-
25-
// Order represents a fictitious order.
26-
type Order struct {
27-
OrderID string `json:"orderID"`
28-
Customer string `json:"customer"`
29-
OrderStatus string `json:"orderStatus"`
30-
OrderTotal float32 `json:"orderTotal"`
31-
CreateTime time.Time `json:"createTime"`
32-
CompleteTime time.Time `json:"completeTime"`
33-
OrderProcessingTime time.Duration `json:"orderProcessingTime"`
34-
}
35-
3622
func main() {
3723
var (
3824
ctx = context.Background()
39-
order *Order
25+
order *common.Order
4026
err error
4127
received int64
4228
totalProcessingTime time.Duration
@@ -50,7 +36,7 @@ func main() {
5036
}
5137
defer session.Close()
5238

53-
blockingQueue, err := coherence.GetBlockingNamedQueue[Order](ctx, session, queueNameProcessed)
39+
blockingQueue, err := coherence.GetBlockingNamedQueue[common.Order](ctx, session, common.QueueNameProcessed)
5440
if err != nil {
5541
panic(err)
5642
}

0 commit comments

Comments
 (0)