Skip to content

Commit 994ba1a

Browse files
committed
Fix expiry time bug, add .gitignore files
1 parent 4dc02f5 commit 994ba1a

File tree

11 files changed

+97
-46
lines changed

11 files changed

+97
-46
lines changed

matching-service-api/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
log

matching-service-api/log/matching_service_api.log

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,27 @@ time="2024-10-16T12:12:09+08:00" level=info msg="request from user user1 success
3333
time="2024-10-16T12:12:14+08:00" level=info msg="request from user user2 successfully published"
3434
time="2024-10-16T12:16:10+08:00" level=info msg="request from user user1 successfully published"
3535
time="2024-10-16T12:16:15+08:00" level=info msg="request from user user2 successfully published"
36+
time="2024-10-17T22:06:44+08:00" level=info msg="Server started at time: 2024-10-17 22:06:44.7418864 +0800 +08 m=+0.016798701"
37+
time="2024-10-17T22:07:23+08:00" level=warning msg="request timeout"
38+
time="2024-10-17T22:15:12+08:00" level=warning msg="request timeout"
39+
time="2024-10-17T22:15:13+08:00" level=warning msg="request timeout"
40+
time="2024-10-17T22:16:34+08:00" level=warning msg="request timeout"
41+
time="2024-10-17T22:16:39+08:00" level=info msg="request from user user1 successfully published"
42+
time="2024-10-17T22:16:46+08:00" level=info msg="request from user user2 successfully published"
43+
time="2024-10-17T22:18:19+08:00" level=info msg="request from user user2 successfully published"
44+
time="2024-10-17T22:20:26+08:00" level=info msg="request from user user1 successfully published"
45+
time="2024-10-17T22:32:52+08:00" level=info msg="request from user user1 successfully published"
46+
time="2024-10-17T22:32:55+08:00" level=info msg="request from user user2 successfully published"
47+
time="2024-10-17T22:34:21+08:00" level=info msg="request from user user1 successfully published"
48+
time="2024-10-17T22:34:24+08:00" level=info msg="request from user user2 successfully published"
49+
time="2024-10-17T22:36:13+08:00" level=info msg="request from user user2 successfully published"
50+
time="2024-10-17T22:36:17+08:00" level=info msg="request from user user1 successfully published"
51+
time="2024-10-17T22:39:48+08:00" level=info msg="request from user user1 successfully published"
52+
time="2024-10-17T22:39:52+08:00" level=info msg="request from user user2 successfully published"
53+
time="2024-10-17T22:44:11+08:00" level=info msg="request from user user2 successfully published"
54+
time="2024-10-17T22:44:15+08:00" level=info msg="request from user user1 successfully published"
55+
time="2024-10-17T22:51:28+08:00" level=info msg="Server started at time: 2024-10-17 22:51:28.1497807 +0800 +08 m=+0.018005101"
56+
time="2024-10-17T22:52:31+08:00" level=warning msg="request timeout"
57+
time="2024-10-17T22:52:36+08:00" level=warning msg="request timeout"
58+
time="2024-10-17T22:52:44+08:00" level=info msg="request from user user1 successfully published"
59+
time="2024-10-17T22:52:49+08:00" level=info msg="request from user user2 successfully published"

matching-service-api/transport/request_handler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ func HandleRequest(channel *models.ProducerQueue, logger *models.Logger) gin.Han
3030
}
3131

3232
//current time is more than 30 seconds after request time, timeout
33-
if time.Now().After(parsedTime.Add(30 * time.Second)) {
33+
if time.Now().After(parsedTime.Add(30 * time.Second).Add(-8 * time.Hour)) {
3434
logger.Log.Warn("request timeout")
35-
ctx.JSON(http.StatusRequestTimeout, "request timed out")
35+
ctx.JSON(http.StatusRequestTimeout, "request time is too old")
3636
return
3737
}
3838

matching-service/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
log

matching-service/consumer/process_request.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
//This is the logic to handle user requests.
22
//Each client is internally mapped to all the possible questions that satisfy their request.
3-
//This server stores all the mappings between each client and their potential questions(id).
43
//If another user comes where their possible questions overlap with that of another user, a random question in the intersection is selected.
54

65
package consumer
76

87
import (
9-
"context"
108
"encoding/json"
119
"fmt"
1210
"matching-service/models"
@@ -29,19 +27,12 @@ func Process(msg rabbit.Delivery, clientMappings *db.ClientMappings, roomMapping
2927
}
3028

3129
fmt.Println("success handling incoming request!")
32-
//deliver the response to the backend
33-
//TODO: to implement this
3430
if room != nil {
3531
if err := roomMappings.SendToStorageBlob(room); err != nil {
3632
return err
3733
}
3834

3935
fmt.Println("success sending to storage blob")
40-
keys, _ := roomMappings.Conn.Keys(context.Background(), "*").Result()
41-
fmt.Println(keys)
42-
result, _ := roomMappings.Conn.HGetAll(context.Background(), "user1").Result()
43-
44-
fmt.Println(len(result))
4536
}
4637

4738
return nil

matching-service/log/matching_service.log

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,20 @@ time="2024-10-16T12:06:22+08:00" level=info msg="Beginning consumption from mess
66
time="2024-10-16T12:06:22+08:00" level=info msg="Begin processing requests"
77
time="2024-10-16T12:11:53+08:00" level=info msg="Beginning consumption from message queue"
88
time="2024-10-16T12:11:53+08:00" level=info msg="Begin processing requests"
9+
time="2024-10-17T22:06:35+08:00" level=info msg="Beginning consumption from message queue"
10+
time="2024-10-17T22:06:35+08:00" level=info msg="Begin processing requests"
11+
time="2024-10-17T22:18:03+08:00" level=info msg="Beginning consumption from message queue"
12+
time="2024-10-17T22:18:03+08:00" level=info msg="Begin processing requests"
13+
time="2024-10-17T22:32:32+08:00" level=info msg="Beginning consumption from message queue"
14+
time="2024-10-17T22:32:32+08:00" level=info msg="Begin processing requests"
15+
time="2024-10-17T22:33:42+08:00" level=info msg="Beginning consumption from message queue"
16+
time="2024-10-17T22:33:42+08:00" level=info msg="Begin processing requests"
17+
time="2024-10-17T22:36:02+08:00" level=info msg="Beginning consumption from message queue"
18+
time="2024-10-17T22:36:02+08:00" level=info msg="Begin processing requests"
19+
time="2024-10-17T22:36:17+08:00" level=error msg="error parsing the time: parsing time \"2024-10-17 22-36-30\" as \"2006-01-02 15-04-05 +0800\": cannot parse \"\" as \" +0800\""
20+
time="2024-10-17T22:39:31+08:00" level=info msg="Beginning consumption from message queue"
21+
time="2024-10-17T22:39:31+08:00" level=info msg="Begin processing requests"
22+
time="2024-10-17T22:43:06+08:00" level=info msg="Beginning consumption from message queue"
23+
time="2024-10-17T22:43:06+08:00" level=info msg="Begin processing requests"
24+
time="2024-10-17T22:51:23+08:00" level=info msg="Beginning consumption from message queue"
25+
time="2024-10-17T22:51:23+08:00" level=info msg="Begin processing requests"

matching-service/storage/client_mappings.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func (db *ClientMappings) HandleRequest(request models.IncomingRequests) (*model
121121
return nil, err
122122
}
123123

124-
expiryTime := requestTime.Add(30 * time.Second)
124+
expiryTime := requestTime.Add(30 * time.Second).Add(-8 * time.Hour)
125125
diff := int(time.Until(expiryTime).Seconds())
126126
err = db.Conn.Expire(ctx, user2, time.Duration(diff) * time.Second).Err()
127127

matching-service/storage/room_mappings.go

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import (
1010
redis "github.com/go-redis/redis/v8"
1111
)
1212

13-
//same as client mappings, but separated for type safety
13+
// same as client mappings, but separated for type safety
1414
type RoomMappings struct {
1515
Conn *redis.Client
1616
}
1717

1818
func InitialiseRoomMappings(addr string, db_num int) *RoomMappings {
1919
conn := redis.NewClient(&redis.Options{
20-
Addr:addr,
21-
DB: db_num,
22-
})
20+
Addr: addr,
21+
DB: db_num,
22+
})
2323

2424
return &RoomMappings{
2525
Conn: conn,
@@ -40,61 +40,59 @@ func (db *RoomMappings) SendToStorageBlob(room *models.Room) error {
4040
return fmt.Errorf("error marshling topics: %s", err.Error())
4141
}
4242

43-
4443
user1_info := map[string]interface{}{
45-
"roomId": room.RoomId,
46-
"otherUser": room.User2,
44+
"roomId": room.RoomId,
45+
"otherUser": room.User2,
4746
"requestTime": room.RequestTime,
4847

49-
"title": room.Title,
50-
"titleSlug": room.TitleSlug,
48+
"title": room.Title,
49+
"titleSlug": room.TitleSlug,
5150
"difficulty": room.Difficulty,
52-
"topicTags": topics_json,
53-
"content": room.Content,
54-
"schemas": schema_json,
55-
"id": room.QuestionId,
51+
"topicTags": topics_json,
52+
"content": room.Content,
53+
"schemas": schema_json,
54+
"id": room.QuestionId,
5655
}
5756

5857
user2_info := map[string]interface{}{
59-
"roomId": room.RoomId,
60-
"otherUser": room.User1,
58+
"roomId": room.RoomId,
59+
"otherUser": room.User1,
6160
"requestTime": room.RequestTime,
6261

63-
"title": room.Title,
64-
"titleSlug": room.TitleSlug,
62+
"title": room.Title,
63+
"titleSlug": room.TitleSlug,
6564
"difficulty": room.Difficulty,
66-
"topicTags": topics_json,
67-
"content": room.Content,
68-
"schemas": schema_json,
69-
"id": room.QuestionId,
65+
"topicTags": topics_json,
66+
"content": room.Content,
67+
"schemas": schema_json,
68+
"id": room.QuestionId,
7069
}
7170

72-
73-
if err1 := db.Conn.HSet(ctx, room.User1, user1_info).Err(); err1 != nil {
71+
if err1 := db.Conn.HSet(ctx, room.User1, user1_info).Err(); err1 != nil {
7472
return fmt.Errorf("error setting user1's room to storage: %s", err1.Error())
7573
}
7674

77-
78-
if err2 := db.Conn.HSet(ctx, room.User2, user2_info).Err(); err2 != nil {
75+
if err2 := db.Conn.HSet(ctx, room.User2, user2_info).Err(); err2 != nil {
7976
return fmt.Errorf("error setting user2's room to storage: %s", err2.Error())
8077
}
81-
78+
8279
requestTime, err := time.Parse("2006-01-02 15-04-05", room.RequestTime)
8380

8481
if err != nil {
8582
return fmt.Errorf("error parsing the time: %s", err.Error())
8683
}
8784

88-
expiryTime := requestTime.Add(30 * time.Second)
85+
expiryTime := requestTime.Add(30 * time.Second).Add(-8 * time.Hour)
86+
8987
diff := int(time.Until(expiryTime).Seconds())
90-
91-
if err1 := db.Conn.Expire(ctx, room.User1, time.Duration(diff) * time.Second).Err(); err1 != nil {
88+
89+
if err1 := db.Conn.Expire(ctx, room.User1, time.Duration(diff)*time.Second).Err(); err1 != nil {
9290
return fmt.Errorf("error setting expiry time on room data: %s", err1.Error())
9391
}
94-
95-
if err2 := db.Conn.Expire(ctx, room.User2, time.Duration(diff) * time.Second).Err(); err2 != nil {
92+
93+
if err2 := db.Conn.Expire(ctx, room.User2, time.Duration(diff)*time.Second).Err(); err2 != nil {
9694
return fmt.Errorf("error setting expiry time on room data: %s", err2.Error())
97-
}
98-
95+
}
96+
9997
return nil
100-
}
98+
}

storage-blob-api/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
log

storage-blob-api/log/matching_service_api.log

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,20 @@ time="2024-10-16T11:55:08+08:00" level=error msg="unable to unmarshal topicTags
88
time="2024-10-16T11:57:16+08:00" level=info msg="Server started running successfully"
99
time="2024-10-16T12:15:40+08:00" level=info msg="Server started running successfully"
1010
time="2024-10-16T12:16:23+08:00" level=info msg="Request handled successfully"
11+
time="2024-10-17T22:06:56+08:00" level=info msg="Server started running successfully"
12+
time="2024-10-17T22:17:13+08:00" level=info msg="Request handled successfully"
13+
time="2024-10-17T22:17:21+08:00" level=info msg="Request handled successfully"
14+
time="2024-10-17T22:17:23+08:00" level=info msg="Request handled successfully"
15+
time="2024-10-17T22:17:32+08:00" level=info msg="Request handled successfully"
16+
time="2024-10-17T22:17:35+08:00" level=info msg="Request handled successfully"
17+
time="2024-10-17T22:33:17+08:00" level=info msg="Request handled successfully"
18+
time="2024-10-17T22:40:27+08:00" level=error msg="unable to unmarshal topicTags to json: unexpected end of JSON input"
19+
time="2024-10-17T22:40:45+08:00" level=error msg="unable to unmarshal topicTags to json: unexpected end of JSON input"
20+
time="2024-10-17T22:40:46+08:00" level=error msg="unable to unmarshal topicTags to json: unexpected end of JSON input"
21+
time="2024-10-17T22:42:52+08:00" level=info msg="Server started running successfully"
22+
time="2024-10-17T22:44:31+08:00" level=info msg="Request handled successfully"
23+
time="2024-10-17T22:44:42+08:00" level=info msg="Request handled successfully"
24+
time="2024-10-17T22:44:57+08:00" level=info msg="Request handled successfully"
25+
time="2024-10-17T22:51:34+08:00" level=info msg="Server started running successfully"
26+
time="2024-10-17T22:52:59+08:00" level=info msg="Request handled successfully"
27+
time="2024-10-17T22:53:03+08:00" level=info msg="Request handled successfully"

0 commit comments

Comments
 (0)