Skip to content

Commit

Permalink
use single mongo session for all requests
Browse files Browse the repository at this point in the history
  • Loading branch information
anujc25 committed Dec 1, 2017
1 parent e14dd1b commit bcb1826
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 25 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ Cloud Hosted Real Time Retail Application.

Cumulative Flow Diagram: [https://tinyurl.com/cmpe281starks-cfd](https://tinyurl.com/cmpe281starks-cfd)

Sprint Burndown Chart: [https://tinyurl.com/cmpe281starks-sbc](https://tinyurl.com/cmpe281starks-sbc)
Sprint Burndown Chart: [https://tinyurl.com/cmpe281starks-sbc](https://tinyurl.com/cmpe281starks-sbc)


2 changes: 1 addition & 1 deletion shopping_cart/cart/.env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MONGODB_SERVER=localhost
MONGODB_SERVER=localhost/?maxPoolSize=10
MONGODB_NAME=shoppingcart
SERVER_ADDRESS=http://localhost
SERVER_PORT=80
Expand Down
19 changes: 18 additions & 1 deletion shopping_cart/cart/src/carts/models/models.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package models

import (
"fmt"
"github.com/joho/godotenv"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"os"
"time"
Expand All @@ -20,6 +22,8 @@ var LinkSharedCart = ""
var ActivityLogServerURL = ""
var RecommendationServerURL = ""

var MongoSession *mgo.Session

func init() {

err := godotenv.Load()
Expand All @@ -40,7 +44,20 @@ func init() {
ActivityLogServerURL = os.Getenv("ACTIVITY_LOG_SERVER_URL")
RecommendationServerURL = os.Getenv("RECOMMENDATION_SERVER_URL")

println("LinkSharedCart:", LinkSharedCart)
}

func GetMongoSession() *mgo.Session {
if MongoSession == nil {
var err error
MongoSession, err = mgo.Dial(MongodbServer)
if err != nil {
fmt.Println("mongodb connection failed: ", err)
panic("mongodb connection failed:")
}
MongoSession.SetMode(mgo.SecondaryPreferred, true)
fmt.Println("New Mongo Session Created")
}
return MongoSession.Clone()
}

const (
Expand Down
23 changes: 13 additions & 10 deletions shopping_cart/cart/src/carts/sharedcart/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -348,17 +348,20 @@ func getMongoConnection() (mgo.Session, mgo.Collection, error) {

var collection *mgo.Collection

session, err := mgo.Dial(models.MongodbServer)
if err != nil {
fmt.Println("mongodb connection failed", err)
//c.String(http.StatusInternalServerError, "")
return *session, *collection, err
}
//defer session.Close()
session.SetMode(mgo.Monotonic, true)
collection = session.DB(models.MongodbDatabase).C(models.MongodbCollectionSharedCarts)
var mgoSession *mgo.Session = models.GetMongoSession()

// session, err := mgo.Dial(models.MongodbServer)
// if err != nil {
// fmt.Println("mongodb connection failed", err)
// //c.String(http.StatusInternalServerError, "")
// return *session, *collection, err
// }
// defer models.MongoSession.Close()
// session.SetMode(mgo.SecondaryPreferred, true)

collection = mgoSession.DB(models.MongodbDatabase).C(models.MongodbCollectionSharedCarts)

return *session, *collection, nil
return *mgoSession, *collection, nil
}

// --- Activity Log Events --- //
Expand Down
21 changes: 11 additions & 10 deletions shopping_cart/cart/src/carts/usercart/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,17 +279,18 @@ func getMongoConnection() (mgo.Session, mgo.Collection, error) {

var collection *mgo.Collection

session, err := mgo.Dial(models.MongodbServer)
if err != nil {
fmt.Println("mongodb connection failed", err)
//c.String(http.StatusInternalServerError, "")
return *session, *collection, err
}
//defer session.Close()
session.SetMode(mgo.Monotonic, true)
collection = session.DB(models.MongodbDatabase).C(models.MongodbCollectionUserCarts)
var mgoSession *mgo.Session = models.GetMongoSession()
// session, err := mgo.Dial(models.MongodbServer)
// if err != nil {
// fmt.Println("mongodb connection failed", err)
// //c.String(http.StatusInternalServerError, "")
// return *session, *collection, err
// }
// //defer session.Close()
// session.SetMode(mgo.SecondaryPreferred, true)
collection = mgoSession.DB(models.MongodbDatabase).C(models.MongodbCollectionUserCarts)

return *session, *collection, nil
return *mgoSession, *collection, nil
}

// --- Activity Log Events --- //
Expand Down
16 changes: 16 additions & 0 deletions shopping_cart/mongodb_cluster/service.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
case $1 in
start)
echo "Starting hello web app."
/root/go/bin/hello &
;;
stop)
echo "Stopping hello web app."
sudo kill $(sudo lsof -t -i:8001)
;;
*)
echo "Hello web app service."
echo $"Usage $0 {start|stop}"
exit 1
esac
exit 0
4 changes: 2 additions & 2 deletions web-app/js/shoppingCart.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var scShoppingCartServerURL = "http://54.183.237.157/carts";
//var scShoppingCartServerURL = "http://localhost/carts";
//var scShoppingCartServerURL = "http://54.183.237.157/carts";
var scShoppingCartServerURL = "http://localhost/carts";
var scTempUserId = "anuj";

var scSelectedCartIndex = 0;
Expand Down

0 comments on commit bcb1826

Please sign in to comment.