Avatar
1
hungw7 Beginner
hungw7 Beginner
Golang return gzip content as API
Em đang dùng redis để cache data product (như code dưới) <p> </p> <pre> productBytes, _ := json.Marshal(product) bf := bytes.Buffer{} gw := gzip.NewWriter(&amp;bf) gw.Write(productBytes) cacheErr := cache.Set(bgCtx, idParam, bf.Bytes(), 60*time.Second).Err() </pre> <p> </p> <p> Giờ em muốn có 1 api trả về ngay kết quả được cache trong redis dưới dạng gzip và http sẽ tự unpack nó ra có được không ạ. Em có search thì thấy http có hỗ trợ content-encoding gzip nhưng chưa biết cách làm, a/c có code mẫu càng tốt ạ :3 </p>
Answer
Avatar
1
Cesc Nguyễn Beginner
Cesc Nguyễn Beginner
Xử lý vấn đề Transaction trên nhiều Repositories
Hi anh chị em, chắc hẳn mọi người đã sử dụng Repository pattern rất nhiều trong lập trình rồi. Em cũng vậy, tuy nhiên em đang gặp phải một vấn đề về việc khi muốn transaction trên nhiều repositories, thì mình nên xử lý thế nào cho hiệu quả. Anh chị em có thể chia sẻ cùng em ở đây nhé ạ. Cảm ơn mọi người.
Answer
Avatar
0
Nguyễn Hiếu Beginner
Socket Golang
Cho em hỏi, em sử dụng readJSON và readMessage để đọc dữ liệu từ client gửi thông qua websocket, vấn đề em đang gặp phải là khi em test sử dụng 2 func này cùn 1 lúc thì ghi gửi dữ liệu, readJSON sẽ thực thi xong sẽ dừng(các câu lệnh sau sẽ kh chạy), client phải gửi lần  2 (các câu lệnh sau mới được thực thi). Mong mn giải đáp giúp em với ạ. (Mặc dù em sử dụng 1 trong 2 thôi đã work rùi nhma test thử thì gặp case này ạ. Em cảm ơn) <img class="alignnone size-full wp-image-8112" src="https://stackask.com/wp-content/uploads/2022/11/Screenshot-2022-11-08-165956.png" alt="" />
Answer
Avatar
0
Nguyễn Hiếu Beginner
Cập nhập dữ liệu khi call api
Em đang call api để lấy dữ liệu xong rồi sẽ thêm vào database, sử dụng cron job để sau 15' cập nhật 1 lần. Nhma làm sao để biết data nào mới để cập nhật ạ. Em đang xóa hết rồi thêm mới lại
Answer
Avatar
0
Nguyễn Hiếu Beginner
[BadQuestionBecauseCodeInImage]Pipeline fade-out fade-in
<img class="alignnone size-full wp-image-6378" src="https://stackask.com/wp-content/uploads/2022/07/Screenshot-from-2022-07-09-11-49-30.png" alt="" /><img class="alignnone size-full wp-image-6379" src="https://stackask.com/wp-content/uploads/2022/07/Screenshot-from-2022-07-09-11-49-25.png" alt="" />Bài này tính tổng bình phương của 1 dãy số, thay vì lặp qua hết dãy thì sẽ chia thành nhiều routine để tính cho nhanh nếu nhưu chuỗi dài. Tuy nhiên chỗ hàm generatePipeline em chưa hiểu lắm ạ. Nó đẩy dãy số đó vào channel, sau đó close mà chỗ return lại out em chưa hiểu ạ
Answer
Avatar
1
Nguyễn Hiếu Beginner
[BadQuestionBecauseCodeInImage]Channel trong Go Lang
<img class="alignnone size-full wp-image-6348" src="https://stackask.com/wp-content/uploads/2022/07/Screenshot-from-2022-07-08-14-23-32.png" alt="" />Cho em hỏi, mình gửi qua 2 channel, mà tại sao select nó có mấy giá trị 0 vậy ạ, em thấy có gọi hàm close cho mỗi channel sau khi gửi xong rồi mà
Answer
Avatar
1
Nguyễn Hiếu Beginner
[BadQuestionBecauseCodeInImage]Append slice in Golang
<img class="alignnone wp-image-6320" src="https://stackask.com/wp-content/uploads/2022/07/Screenshot-from-2022-07-06-14-06-08.png" alt="" /> <p> </p> <p> Cho em hỏi, vì sao append(a[:2], a[3:]...) mà giá trị trong slice a sau khi thực hiện câu lệnh này nó thay đổi vậy ạ. Em cảm ơn </p>
Answer
Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
vì sao Golang xử lý concurrency tốt
em đang muốn xử lý lượng concurrency lớn từ người dùng, mọi người nói nên chọn Golang vì Java k xử lý được như vậy, anh có thể giải thích em vì sao Golang và NodeJS có thể làm vậy mà Java k thể k ạ
Answer
Avatar
1
Cesc Nguyễn Beginner
Cesc Nguyễn Beginner
Ứng dụng của zookeeper trong các hệ thống
Hi ae. AE đã từng sử dụng zookeeper có thể chia sẻ cùng em những ứng dụng thực tế của nó trong các hệ thống backend với ạ. Khi sử dụng zookeeper thì sẽ thường sử dụng với những component nào nữa và tại sao ạ? <p> </p> <p> Cảm ơn anh em. </p>
Answer
Avatar
1
Nguyễn Văn Thịnh Beginner
Generic type in golang
Mình vẫn thắc mắc tại sao Golang không (chưa) hỗ trợ generic type, bạn nào biết có thể chỉ mình với được không ? Vì mình cảm giác việc duplicate code xảy ra khá thường xuyên...
Answer
Avatar
1
monkey Enlightened
monkey Enlightened
[Go] Đây có phải 1 dạng thừa kế?
<pre> type Evidence interface { ABCI() []abci.Evidence // forms individual evidence to be sent to the application Bytes() []byte // bytes which comprise the evidence Hash() []byte // hash of the evidence Height() int64 // height of the infraction String() string // string format of the evidence Time() time.Time // time of the infraction ValidateBasic() error // basic consistency check } type DuplicateVoteEvidence struct { VoteA *Vote `json:"vote_a"` VoteB *Vote `json:"vote_b"` // abci specific information TotalVotingPower int64 ValidatorPower int64 Timestamp time.Time } var _ Evidence = &amp;DuplicateVoteEvidence{} </pre> <p> </p> <p> Đây là một dạng thừa kế à mọi người? </p>
Answer
Avatar
0
monkey Enlightened
monkey Enlightened
Go đoạn lệnh này có nghĩa là gì?
Trong đoạn lệnh dưới đây thì <code>ev, ok := ev.(<em>types.DuplicateVoteEvidence)</code> có nghĩa là gì nhỉ? Nó là gọi hàm hay là gì nhỉ? </em> <pre> type Evidence interface { ABCI() []abci.Evidence // forms individual evidence to be sent to the application Bytes() []byte // bytes which comprise the evidence Hash() []byte // hash of the evidence Height() int64 // height of the infraction String() string // string format of the evidence Time() time.Time // time of the infraction ValidateBasic() error // basic consistency check } type DuplicateVoteEvidence struct { VoteA *Vote `json:"vote_a"` VoteB *Vote `json:"vote_b"` // abci specific information TotalVotingPower int64 ValidatorPower int64 Timestamp time.Time } evidenceFromEachValidator := make([]types.Evidence, nValidators) // set giá trị cho evidenceFromEachValidator for idx, ev := range evidenceFromEachValidator { ev, ok := ev.(*types.DuplicateVoteEvidence) } </pre>
Answer