Chào bạn.
Các trên gặp một vấn đề là Khi Người dùng dừng tiến trình. Thì các Jobs buộc phải bị hủy.
Nếu vậy. Trong jobs ta vẫn phải request tới database để kiểm tra trạng thái của tiếng trình
@bs90 : Bác Nói đúng ý em rồi
Đơ là do em sử lý bacnkend cả triệu reuqest một lúc
Vì Khi người dùng tạo ra một tiến trình . Ngay lập tức trong backend của em sẽ tạo 5000 rows chứa Thông tin về Jobs của Tiến trình Vừa tạo.
=> em nói thêm là cứ mỗi lần request thành công em sẽ tính phí người dùng.
Giải pháp ném lên Redis : Gặp một ván đề là khi người dùng hủy tiến trình thì các Jobs của tiến trình đó phải hủy theo.
@yukihoaian Bạn mới học iOS sơ sơ + add vào dự án thì chắc là sẽ có người hướng dẫn bạn phải không. Mình nghĩ tốt nhất là bạn nên chủ động hỏi người hướng dẫn của bạn. Vì người đó (có thể) là người rõ nhất về cả business và code, nên giải pháp của người đó sẽ chính xác hơn cả.
Còn cái này
Message from debugger: Terminated due to memory issue"
có thể là vì bạn load quá nhiều video 1 lúc, dẫn đến việc tràn bộ nhớ (app dùng nhiều RAM quá bị out)
Trong trường hợp này bạn chỉ nên chạy 1 video 1 lúc, các video chưa chạy sẽ không load AVPlayer lên, mà chỉ hiển thị ảnh thumbnail cho nó. Đơn giản vì người dùng cũng không cần thiết phải xem 2 video chạy 1 lúc, việc đó chỉ làm app của bạn tốn nhiều bộ nhớ hơn mà thôi.
Góp vui cách tương ứng với số 3 mà cái này để format input khi gõ số (gõ tới đâu nó format tới đó). Em cũng GG trong quá trình làm việc thôi mong ae không ném đá ^^. Hic ko biết format code ntn ae thông cảm.
Thực sự đọc giải thích của bạn khó hiểu quá Mình ngồi đọc đi đọc lại không dưới chục lần nhưng vẫn ... chưa hiểu gì cả
Bạn giải thích thêm một chút được không
Cứ mỗi 16s giây lại phải làm 1 lần
"làm 1 lần" ở đây là làm cái gì? Bạn đang làm thế nào để căn 16 giây để thực hiện việc đó.
làm xong sẽ lưu lại log bao gồm trạng thái và kết quả
lưu trạng thái và kết quả của cái gì? bởi theo bạn nói là chạy 5000 lần mới xong 1 job, nên mình không rõ là lưu lại log thì là log của cái gì
Jobs khi sử lý cần phải curl 3-5 lần rất tốn tài nguyên
Tức là 1 job của bạn chạy 5000 lần một cái gì đó, và trong đó có 3-5 lần là curl, không biết mình hiểu thế có đúng không Bạn đang curl cái gì mà lại tốn tài nguyên? Hiện quá trình đó đang xử lý mất bao lâu? Từ đó tính ra để chạy hết 1 job hiện đang cần bao nhiêu thời gian?
cứ 16 giây thì phải tạo hoặc update 80.000 rows
Schedulling hay crontab thì chỉ chạy được theo từng phút, hiện bạn đang xử lý thế nào để cứ 16 giây lại xử lý 1/5000 của job nhỉ? Và sao lại cần phải tạo hoặc update 80,000 rows vậy? Bạn tạo mới, hay update 80,000 rows này như thế nào, cần dùng đến khoảng bao nhiêu câu query?
=> Web đơ
Web đơ là do web cũng request đến bảng chứa 80,000 rows được tạo mới/update, mình hiểu thế đúng không nhỉ?
Bạn nên đưa thêm thông tin chi tiết thì mọi người sẽ có thể hiểu và support bạn được tốt hơn
@Katoji à anh ơi! còn vụ "leak memory " mình fix được không anh?
nãy em chạy app bị văng ra vì lỗi này nữa: "Message from debugger: Terminated due to memory issue"
@Katoji dạ tại code này em làm dự án của cty. nên public hơi khó . để em hỏi chị kia thử. em mới học IOS sơ sơ nhưng vào cty đưa ngay cái app này em cũng đang bế tắc.
THẢO LUẬN
vậy bác có gặp tình trạng hay nhảy pointer lung tung và mất chữ ko?
Mình cũng đang dùng trên Ubuntu 18.04 đây, nó bị sao vậy bạn.
Thank man ^_^
Chào bạn. Các trên gặp một vấn đề là Khi Người dùng dừng tiến trình. Thì các Jobs buộc phải bị hủy. Nếu vậy. Trong jobs ta vẫn phải request tới database để kiểm tra trạng thái của tiếng trình
Mình đang cần cái này. thanks bạn nhé.
@bs90 : Bác Nói đúng ý em rồi Đơ là do em sử lý bacnkend cả triệu reuqest một lúc
Vì Khi người dùng tạo ra một tiến trình . Ngay lập tức trong backend của em sẽ tạo 5000 rows chứa Thông tin về Jobs của Tiến trình Vừa tạo.
=> em nói thêm là cứ mỗi lần request thành công em sẽ tính phí người dùng.
Giải pháp ném lên Redis : Gặp một ván đề là khi người dùng hủy tiến trình thì các Jobs của tiến trình đó phải hủy theo.
Rất dễ hiểu, cảm ơn bác
@HoanKi Tôi thấy bài viết này rất hay và hữu ích. Cảm ơn!
mình dùng trên ubuntu 18.04 nó ko được ổn lắm
Mình góp ý chút:
@yukihoaian Bạn mới học iOS sơ sơ + add vào dự án thì chắc là sẽ có người hướng dẫn bạn phải không. Mình nghĩ tốt nhất là bạn nên chủ động hỏi người hướng dẫn của bạn. Vì người đó (có thể) là người rõ nhất về cả business và code, nên giải pháp của người đó sẽ chính xác hơn cả.
Còn cái này
có thể là vì bạn load quá nhiều video 1 lúc, dẫn đến việc tràn bộ nhớ (app dùng nhiều RAM quá bị out)
Trong trường hợp này bạn chỉ nên chạy 1 video 1 lúc, các video chưa chạy sẽ không load AVPlayer lên, mà chỉ hiển thị ảnh thumbnail cho nó. Đơn giản vì người dùng cũng không cần thiết phải xem 2 video chạy 1 lúc, việc đó chỉ làm app của bạn tốn nhiều bộ nhớ hơn mà thôi.
Góp vui cách tương ứng với số 3 mà cái này để format input khi gõ số (gõ tới đâu nó format tới đó). Em cũng GG trong quá trình làm việc thôi mong ae không ném đá ^^. Hic ko biết format code ntn ae thông cảm.
@thangtd90 Theo em hiểu thì vấn đề của bạn ấy là thế này
Nhưng khi cần dùng đến thì toàn phải gg thần trưởng, chứ tự viết mà không có gg thì không viết được =)) Chỉ có idea thôi bác ạ
Thực sự đọc giải thích của bạn khó hiểu quá
Mình ngồi đọc đi đọc lại không dưới chục lần nhưng vẫn ... chưa hiểu gì cả 
Bạn giải thích thêm một chút được không
"làm 1 lần" ở đây là làm cái gì? Bạn đang làm thế nào để căn 16 giây để thực hiện việc đó.
lưu trạng thái và kết quả của cái gì? bởi theo bạn nói là chạy 5000 lần mới xong 1 job, nên mình không rõ là lưu lại log thì là log của cái gì
Tức là 1 job của bạn chạy 5000 lần một cái gì đó, và trong đó có 3-5 lần là curl, không biết mình hiểu thế có đúng không
Bạn đang
curlcái gì mà lại tốn tài nguyên? Hiện quá trình đó đang xử lý mất bao lâu? Từ đó tính ra để chạy hết 1 job hiện đang cần bao nhiêu thời gian?Schedulling hay crontab thì chỉ chạy được theo từng phút, hiện bạn đang xử lý thế nào để cứ 16 giây lại xử lý 1/5000 của job nhỉ? Và sao lại cần phải tạo hoặc update 80,000 rows vậy? Bạn tạo mới, hay update 80,000 rows này như thế nào, cần dùng đến khoảng bao nhiêu câu query?
Web đơ là do web cũng request đến bảng chứa 80,000 rows được tạo mới/update, mình hiểu thế đúng không nhỉ?
Bạn nên đưa thêm thông tin chi tiết thì mọi người sẽ có thể hiểu và support bạn được tốt hơn
Bài viết rất hay, cảm ơn bạn đã chia sẻ
@yukihoaian Còn vụ video, trường hợp streaming thì mình làm như sau.
@yukihoaian ah mình xin lỗi. Mình tưởng code bạn tự học
Leak memory fix được bạn. Vì mình không debug nên hơi khó nói.
Bạn tham khảo về leak memory tại đây nhé: https://niviki.com/quan-ly-bo-nho-trong-swift/
@Katoji à anh ơi! còn vụ "leak memory " mình fix được không anh? nãy em chạy app bị văng ra vì lỗi này nữa: "Message from debugger: Terminated due to memory issue"
@Katoji dạ tại code này em làm dự án của cty. nên public hơi khó
. để em hỏi chị kia thử. em mới học IOS sơ sơ nhưng vào cty đưa ngay cái app này em cũng đang bế tắc. 