Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Bạn có thể chạy các tập lệnh của mình đồng thời với popen() và lấy đầu ra sau với fread().

//execute
foreach ($model as $server) {
    $server->handles = [
        popen('sudo path/to/total_cpu_usage.sh '.$server->server_addr, 'r'),
        popen('sudo path/to/total_memory_usage.sh '.$server->server_addr, 'r'),
        popen('sudo path/to/disk_space.sh '.$server->server_addr, 'r'),
        popen('sudo path/to/inode_space.sh '.$server->server_addr, 'r'),
        popen('sudo path/to/network.sh '.$server->server_addr, 'r'),
    ];
}

//grab and store the output, then close the handles
foreach ($model as $server) {
    $server->cpu_usage = fread($server->handles[0], 4096);
    $server->mem_usage = fread($server->handles[1], 4096);
    $server->disk_space = fread($server->handles[2], 4096);
    $server->inode_space = fread($server->handles[3], 4096);
    $server->network = fread($server->handles[4], 4096);

    foreach($server->handles as $h) pclose($h);
}

//print everything
print_r($model);

Tôi đã thử nghiệm một mã tương tự để thực thi 5 tập lệnh ngủ trong 2 giây và toàn bộ sự việc chỉ mất 2,12 giây thay vì 10,49 giây với shell_exec().

CẬP NHẬT 1: Cảm ơn rất nhiều đến Markus AO đã chỉ ra tiềm năng tối ưu hóa. Big thanks to Markus AO for pointing out an optimization potential.

Cập nhật 2: Đã sửa đổi mã để xóa khả năng ghi đè. Các kết quả hiện đang ở bên trong $model. Modified the code to remove the possibility of overwrite. The results are now inside $model.

Điều này cũng có thể cho thấy máy chủ nào từ chối kết nối, trong trường hợp vấn đề về SSHD đang ảnh hưởng đến bạn.

& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp; Đăng một bình luận& nbsp;

Đăng một bình luận

Xem Nhận xét (0)

Author:

Trackbacks (0) PHP Async Executor

Tất cả các blog gói

Giám đốc điều hành PHP Async


Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Blog Gói thực thi Async của PHP

Cách thực hiện pH ...

Bài viết nổi bật hàng đầu

77. Bài viết này

Gói này có thể chạy các tập lệnh PHP song song bằng phiên bản CLI.

Nó có thể chạy một tập lệnh PHP nhất định bằng cách thực thi phiên bản PHP CLI. Nó chuyển tên của tập lệnh và các giá trị tham số làm giá trị tham số dòng lệnh.

Gói có thể bắt đầu một quá trình để chạy một tệp tập lệnh hiện có. Nó cũng có thể chờ một thời gian nhất định nếu tệp tập lệnh không tồn tại, cho phép một quy trình khác tạo tệp tập lệnh trong khi gói chờ đợi.

Sự kết luận

Có thể tải xuống, người thực thi PHP Async từ trang tải xuống hoặc được cài đặt bằng công cụ Nhà soạn nhạc PHP theo hướng dẫn trong trang Hướng dẫn cài đặt của Nhà soạn nhạc.

Gói này được coi là đáng chú ý để thực hiện các lợi ích của nó theo cách đáng chú ý.

Các gói PHP đáng chú ý thường có thể được coi là sáng tạo. Nếu gói này cũng sáng tạo, nó có thể được đề cử vào Giải thưởng Đổi mới PHP và tác giả có thể giành giải thưởng và sự công nhận để chia sẻ các gói sáng tạo.

Nếu bạn cũng đã phát triển các gói đáng chú ý hoặc sáng tạo của riêng mình, hãy xem xét việc chia sẻ chúng, vì vậy bạn cũng có thể kiếm được nhiều khả năng hiển thị hơn cho gói của mình cũng như các giải thưởng tốt đẹp.

Một giải thưởng tốt đẹp mà nhiều nhà phát triển PHP muốn và bạn có thể thích là linh vật PHP Elephpant sang trọng.


Bạn cần phải là người dùng đã đăng ký hoặc đăng nhập để đăng bình luận

1.602.182 nhà phát triển PHP đã đăng ký vào trang web của các lớp PHP. Hãy là một trong số chúng tôi! Be One of Us!

Đăng nhập ngay lập tức với tài khoản của bạn trên:

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Facebook

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Gmail

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Hotmail

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Stackoverflow

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

GitHub

Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời

Yahoo

Comments:

Chưa có ý kiến ​​nào được gửi.



& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp; Đăng một bình luận& nbsp;
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
& nbsp;
Hướng dẫn php run multiple scripts simultaneously - php chạy nhiều tập lệnh đồng thời
Đăng một bình luận
& nbsp;