@BuiHuyHoang cảm ơn bạn, trường hợp của mình đang dùng max-width thôi chứ không dùng min-width
Vậy chúng ta có thể kết luận quy luật đúng khi sử dụng media:
min-with : các media sắp xếp theo thứ tự từ giá trị từ nhỏ đến lớn (nhỏ ở trên, lớn ở dưới)
max-width : các media sắp xếp theo thứ tự từ lớn đến nhỏ (lớn ở trên, nhỏ ở dưới)
Em chào anh. Anh có thể cho em xin cách thức liên hện với anh được không ạ. Em gặp phải vấn đề khá nhức đầu mà chưa có hướng giải quyết.
Em có viết 1 cổng APIGW (1) bằng FastAPI.
Khi có request của client(2) về (1) thì (1) có nhiệm vụ mang request của client và call đến service Provider (Third Party: (3)).
Nhận response của (3) và trả về cho (1).
Hiện tại có service gặp lỗi đó là:
thi thoảng request đầu tiên bị lỗi - 500 -> gọi lại lần nữa thì thành công
hoặc gọi lần 1 lần 2 bị lỗi 500 -> gọi lần tiếp theo thì thành công
Tần xuất suất hiện không nhiều nhưng có xu hướng gần đây tăng dần + vì số lượng request ngày càng lớn nên -> request error ngày càng tăng. Anh có thể cho em cách thức liên lạc, anh chỉ bảo em thêm được không ạ
bạn có thể sử dụng projection tạo custom projection hoặc excerptProjection hoặc bạn cũng có thể tạo ObjectMapper để xoá hẳn "_embeded" với "_links" nhé b
Thank anh chủ post, bài post quá hay cho người mới, đã làm theo và thành công ạ.
Có 1 số chỗ trong quá trình làm theo em gặp vấn đề do tay nhanh hơn não share lại cho a/e sau.
Cấu hình file host trước khi copy SSH key.
File host.yaml nếu copy nguyên bên trên thì nên chuyển sang đúng format yaml(Dùng chatgpt convert lại), file trên có vẻ như .ini
Trong quá trình cài đặt gặp lỗi:
{"attempts": 4, "changed": false, "msg": "Failure talking to yum: Cannot find a valid baseurl for repo: base/7/x86_64"}
=> Run command:
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/.repo && sed -i s/^#.baseurl=http/baseurl=http/g /etc/yum.repos.d/.repo && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/.repo && yum update -y
Em sử dụng socket.io thay cho pusher và gặp vấn đề là broadcast::channel không chạy, em đã return false ở channel rồi nhưng kênh vẫn được xác thực thành công. Nhờ a xem giúp với ạ.
Trong phạm vi bài viết mình chỉ đang đề cập tới flow của Redux thuần, và action được đề cập cũng là thụnk action của redux.
Còn createAsyncThunk là một API của redux toolkit dùng để đơn giản hóa những flow đề cập trong bài viết, bạn không cần quan tâm tới action creator, dispatch,... bạn chỉ cần một action dạng string, và một callback (tất nhiên là trả về một promise vì đây là async action 😀) và một reducer để resolve cái promise đó.
Nhưng nay đã là 2025 rồi 😀 , bạn có thể thử những thư viện hỗ trợ data fetching khác tôt hơn như như React-query, swr hoặc nếu vẫn muốn ở lại với Redux thì có thể thử Redux Toolkit's RTK.
Hiện tại mô hình mình đang sử dụng cũng giống bạn, khác ở chỗ mình dùng Apache thay cho Nginx.
Theo kiến thức nông cạn của mình, Traefik KHÔNG dùng trực tiếp với php, tính đến thời điểm mình bình luận thì Chưa có giải pháp cho vấn đề này. Traefik hoạt động như Proxy, minh chứng là cái tên đầy của của Traefik là "Traefik proxy" nó không phải là Webserver🫢. Nên mình nghĩ là bạn đã cấu hình đúng.
Nhưng nếu giải quyết vấn đề này, hãy thử dùng cách sau:
Như bạn đã biết "artisan serv" của laravel sẽ start 1 server, sau đó ta chỉ cần expose ra cho Traefik hứng và proxy ra ngoài (nhưng artisan serve chỉ nên dùng ở môi trường DEV phải không?) vì thế hãy tìm một library php có chức năng tương tự và đảm bảo đủ an toàn để chạy cho môi trường Prod, mình thấy cũng có khá nhiều library hỗ trợ.
Nhưng riêng cá nhân mình thấy sử dụng mô hình này để tận dụng những webserver có sẵn (nginx, apache) chỉ tốn thêm miếng dung lượng lưu trữ thôi chứ chất lượng thì chỉ có tốt và tốt hơn thôi. Cho dù tốn thêm vài chục vài hoặc trăm millisecond để đảm bảo sự an toàn và thông suốt cho hệ thống là hoàn toàn hợp lí.
Bài viết chi tiết, dễ hiểu rất phù hợp cho người mới học như mình. Nhưng postman chỉ báo lỗi 401, làm sao để fix được lỗi 403 nữa ạ. Mong bạn hướng dẫn
THẢO LUẬN
@BuiHuyHoang cảm ơn bạn, trường hợp của mình đang dùng
max-width
thôi chứ không dùngmin-width
Vậy chúng ta có thể kết luận quy luật đúng khi sử dụng media:với tiktok thì khi e pass phỏng vấn thì cty họ lo hết visa
duy trì luyện tập như 1 thói quen hàng ngày giúp cho mọi việc dường như đơn giản hơn bạn nhỉ
Em hỏi chút là nếu mình pass được và có thể sang đó làm việc thì vấn đề chỗ ở hay visa các thứ là mình tự chuẩn bị đúng k ạ? bên Cty có sp gì k a
e để log vào tất cả những chỗ kia xem nó có chạy hay ko?
Em vẫn chưa hiểu sao mẫu này lại gọi là Template Method nhỉ
👍️
@PhamTin Dạ cảm ơn anh
Em chào anh. Anh có thể cho em xin cách thức liên hện với anh được không ạ. Em gặp phải vấn đề khá nhức đầu mà chưa có hướng giải quyết. Em có viết 1 cổng APIGW (1) bằng FastAPI. Khi có request của client(2) về (1) thì (1) có nhiệm vụ mang request của client và call đến service Provider (Third Party: (3)). Nhận response của (3) và trả về cho (1). Hiện tại có service gặp lỗi đó là:
Thankiu anh đã có bài viết như thế này ạ.
bạn có thể sử dụng projection tạo custom projection hoặc excerptProjection hoặc bạn cũng có thể tạo ObjectMapper để xoá hẳn "_embeded" với "_links" nhé b
Thank anh chủ post, bài post quá hay cho người mới, đã làm theo và thành công ạ.
Có 1 số chỗ trong quá trình làm theo em gặp vấn đề do tay nhanh hơn não share lại cho a/e sau.
Cấu hình file host trước khi copy SSH key.
File host.yaml nếu copy nguyên bên trên thì nên chuyển sang đúng format yaml(Dùng chatgpt convert lại), file trên có vẻ như .ini
Trong quá trình cài đặt gặp lỗi: {"attempts": 4, "changed": false, "msg": "Failure talking to yum: Cannot find a valid baseurl for repo: base/7/x86_64"} => Run command: sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/.repo && sed -i s/^#.baseurl=http/baseurl=http/g /etc/yum.repos.d/.repo && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/.repo && yum update -y
Bài viết đâu có nhắc đến đơn luồng hay đa luồng đâu bạn, "asynchronous" khác với "multithreading".
dấu '≡' là gì vậy ạ
Hi bạn, cảm ơn bạn đã theo dõi, bài này mình không cần link github nha, source của mấy bài sau ^^
Em sử dụng socket.io thay cho pusher và gặp vấn đề là broadcast::channel không chạy, em đã return false ở channel rồi nhưng kênh vẫn được xác thực thành công. Nhờ a xem giúp với ạ.
Trong phạm vi bài viết mình chỉ đang đề cập tới flow của Redux thuần, và action được đề cập cũng là thụnk action của redux. Còn createAsyncThunk là một API của redux toolkit dùng để đơn giản hóa những flow đề cập trong bài viết, bạn không cần quan tâm tới action creator, dispatch,... bạn chỉ cần một action dạng string, và một callback (tất nhiên là trả về một promise vì đây là async action 😀) và một reducer để resolve cái promise đó. Nhưng nay đã là 2025 rồi 😀 , bạn có thể thử những thư viện hỗ trợ data fetching khác tôt hơn như như React-query, swr hoặc nếu vẫn muốn ở lại với Redux thì có thể thử Redux Toolkit's RTK.
Hiện tại mô hình mình đang sử dụng cũng giống bạn, khác ở chỗ mình dùng Apache thay cho Nginx. Theo kiến thức nông cạn của mình, Traefik KHÔNG dùng trực tiếp với php, tính đến thời điểm mình bình luận thì Chưa có giải pháp cho vấn đề này. Traefik hoạt động như Proxy, minh chứng là cái tên đầy của của Traefik là "Traefik proxy" nó không phải là Webserver🫢. Nên mình nghĩ là bạn đã cấu hình đúng. Nhưng nếu giải quyết vấn đề này, hãy thử dùng cách sau: Như bạn đã biết "artisan serv" của laravel sẽ start 1 server, sau đó ta chỉ cần expose ra cho Traefik hứng và proxy ra ngoài (nhưng artisan serve chỉ nên dùng ở môi trường DEV phải không?) vì thế hãy tìm một library php có chức năng tương tự và đảm bảo đủ an toàn để chạy cho môi trường Prod, mình thấy cũng có khá nhiều library hỗ trợ. Nhưng riêng cá nhân mình thấy sử dụng mô hình này để tận dụng những webserver có sẵn (nginx, apache) chỉ tốn thêm miếng dung lượng lưu trữ thôi chứ chất lượng thì chỉ có tốt và tốt hơn thôi. Cho dù tốn thêm vài chục vài hoặc trăm millisecond để đảm bảo sự an toàn và thông suốt cho hệ thống là hoàn toàn hợp lí.
Bài viết chi tiết, dễ hiểu rất phù hợp cho người mới học như mình. Nhưng postman chỉ báo lỗi 401, làm sao để fix được lỗi 403 nữa ạ. Mong bạn hướng dẫn
@ichhoa129 Ok bạn