Skip to content

Commit

Permalink
move sending of event to goroutine
Browse files Browse the repository at this point in the history
deep110 committed Jan 20, 2023
1 parent 8adea7a commit 3b6b82c
Showing 2 changed files with 38 additions and 33 deletions.
6 changes: 3 additions & 3 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -184,15 +184,15 @@ import (

// If you don't want to export AWS_CREDENTIALS or already have them under different name, call
// `SetAWSCredentials` while initializing the module
events.SetAWSCredentials(awsAccessKey, awsSecretKey, awsRegion)
err = events.SetAWSCredentials(awsAccessKey, awsSecretKey, awsRegion)

// send the actual cost event
err = events.SendCostEvent(
events.SendCostEvent(
events.NewCostEvent(events.ASR, events.GOOGLE, "client-uuid", "flow-uuid", "call-uuid", "conv-uuid")
)

// if you want to count a single event with multiple hits
err = events.SendCostEvent(
events.SendCostEvent(
events.NewCostEventWithNumHits(events.ASR, events.GOOGLE, "client-uuid", "flow-uuid", "call-uuid", "conv-uuid", 2)
)
```
65 changes: 35 additions & 30 deletions events/sqs.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package events

import (
"fmt"
"encoding/json"

"github.com/aws/aws-sdk-go/aws"
@@ -49,35 +50,39 @@ func SetAWSCredentials(awsAccessKey, awsSecretKey, awsRegion string) error {
}


func SendCostEvent(costEvent CostEvent) error {
session, err := getSQSSession()
if err != nil {
return err
}

svc := sqs.New(session)
if WAREHOUSE_QUEUE_URL == nil {
WAREHOUSE_QUEUE_URL, err = getQueueURL(svc, &WAREHOUSE_QUEUE_NAME)
}
if err != nil {
return err
}

body, jsonErr := json.Marshal(costEvent)
if jsonErr != nil {
return jsonErr
}

_, err = svc.SendMessage(&sqs.SendMessageInput{
MessageAttributes: map[string]*sqs.MessageAttributeValue{
"EventType": {
DataType: aws.String("String"),
StringValue: aws.String(string(WAREHOUSE_COST_TRACKER)),
func SendCostEvent(costEvent CostEvent) {
go func() {
session, err := getSQSSession()
if err != nil {
fmt.Println("SendCostEvent: ", err)
return
}

svc := sqs.New(session)
if WAREHOUSE_QUEUE_URL == nil {
WAREHOUSE_QUEUE_URL, err = getQueueURL(svc, &WAREHOUSE_QUEUE_NAME)
}
if err != nil {
fmt.Println("SendCostEvent: ", err)
return
}

body, jsonErr := json.Marshal(costEvent)
if jsonErr != nil {
fmt.Println("SendCostEvent: ", err)
return
}

_, err = svc.SendMessage(&sqs.SendMessageInput{
MessageAttributes: map[string]*sqs.MessageAttributeValue{
"EventType": {
DataType: aws.String("String"),
StringValue: aws.String(string(WAREHOUSE_COST_TRACKER)),
},
},
},
MessageBody: aws.String(string(body)),
QueueUrl: WAREHOUSE_QUEUE_URL,
})

return err
MessageBody: aws.String(string(body)),
QueueUrl: WAREHOUSE_QUEUE_URL,
})
fmt.Println("SendCostEvent: ", err)
}()
}

0 comments on commit 3b6b82c

Please sign in to comment.