Lỗi function sau chạy trong khi function trước đó chưa chạy xong

Mình có viết

Fun1();
Fun2()
send_notifications($data,$arr_endpoint_id);
set_schedule_notification($notification['notification_id'],$endpoint_start,$endpoint_end);

Mà Fun2 chạy trong khi Fun 1 chưa chạy xong dẫn đến tràn > đứng máy chủ.

FULL code : https://throwbin.io/FcNrjAC

Ae xem mình sai chỗ nào với. Mình muốn nó chạy tuần tự 1>500 rồi 500>1000 mà nó chạy 1 phát là 1>1000…

Trong send_notifications() có dùng đến luồng xử lý (thread) à?

1 Like

Có sử dụng lệnh:

require_once $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/push/PushNotification.php';

foreach ( Mảng trên ~ 500 phẩn tử) {
> Hàm gửi Minishlink ~ 300 line code + update database
}

Với sô lượng gửi ~ 5000 khi test code đến 5000 là lỗi máy chủ 503 hoặc 504…

chạy lâu quá nên timeout thôi. Thực ra với 1 mẩu thông tin bạn gửi lên đây cũng khó mà bắt bệnh cho bạn được do không hiểu rõ bạn đang làm cái gì bên trong các function

3 Likes

File chính mình có share ở trên đó bạn, còn file xử lý là cái này: https://github.com/web-push-libs/web-push-php
Mà demo bên này list gửi tầm ~200 thì ổn.

Như này nếu list ~ 200 gửi vẫn nhanh. Còn nếu lớn hơn thì… tạch

Full code: https://gist.github.com/bcat95/4236f6d81d3cbddb12fd8c65166330e5

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?