Professional Documents
Culture Documents
UML Diagram & QA
UML Diagram & QA
3. Nếu 2 bài news có trùng tên author với nhau thì làm sao phân biệt được đó là
cùng 1 author hay là 2 author trùng tên với nhau ?
Ans: Cái này mình phân biệt author qua author_id chứ đâu phải qua tên đâu anh.
4. Mối liên hệ giữa crawl_history và news là gì? Khi crawl data thì crawl_history
được lưu lại, vậy thì news sẽ được lưu lại như thế nào?
Ans:
- Mối liên hệ giữa crawl_history và news là N:M, tức 1 crawl_history sẽ chứa nhiều
news và 1 news có thể nằm trong nhiều crawl_history.
- Khi crawl data thì crawl_history sẽ được lưu lại trong database. Lúc này có bảng
contains_crawl_item sẽ chịu trách nhiệm lưu news cho crawl_history (bao gồm
news_id và crawl_history_id).
10. Lưu ý: User không cần login để sử dụng app của mình, nhưng user cần cung
cấp tài khoản để crawl về từ các trang web họ muốn.
Ans:
- Anh có thể giải thêm ý này được không ạ ? Ý là nếu không cần login thì mình sẽ
cho phép việc crawl những gì hay là không crawl luôn ạ. Tại vì function chính
của app mình là crawl á anh.
- Hiện tại trên database design của tụi em là crawl_history_table bắt buộc phải có
user_id, tức là yêu cầu phải login mới được crawl á anh.
11. Flow để schedule crawler của mình ở đâu? Mình lưu những cái mình cần
schedule ở đâu? cái gì sẽ là scheduler
Ans:
- Những cái mình cần schedule tụi em nghĩ là phải thêm 1 table:
crawl_schedule_setting chứa các attribute: interval_unit, interval_value,
news_website_id và user_id.
- Với flow để schedule crawler, tụi em tính dùng Cloud Scheduler và Cloud Run
trên GCP để chạy crawl. Flow sẽ bắt đầu với user nhập params trên frontend,
gửi qua API. Từ API tụi em sẽ tạo task dựa trên parameter đó và gửi request tạo
crawl job để chạy Cloud Run function ở thời điểm và interval đã cho. Sau khi đã
chạy xong thì sẽ lưu dữ liệu vào database.
- Về cách bảo đảm Cloud Run function hoạt động ổn khi có nhiều request, thì tụi
em đang cân nhắc dùng load balancing cho crawler function và message queue
để queue task vào khi có request mới có được không anh? Tụi em đang không
chắc về nên bỏ message queue ở API hay cloud function?