Hướng dẫn sleep in for loop php - ngủ trong for loop php

34

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Trong PHP, tôi muốn đặt một số độ trễ thứ hai trên mỗi lần lặp của vòng lặp.

for ($i=0; $i <= 10; $i++) {
    $file_exists=file_exists($location.$filename);
    if($file_exists) {
        break;
    }

    //sleep for 3 seconds
}

Tôi có thể làm cái này như thế nào?

Hướng dẫn sleep in for loop php - ngủ trong for loop php

Đã hỏi ngày 14 tháng 3 năm 2013 lúc 16:16Mar 14, 2013 at 16:16

13

Sử dụng hàm PHP sleep(). http://php.net/manual/en/function.s ngủ.php Điều này dừng thực hiện vòng lặp tiếp theo trong số giây đã cho. Vì vậy, một cái gì đó như thế này

for ($i=0; $i <= 10; $i++) {
    $file_exists=file_exists($location.$filename);
    if($file_exists) {
        break;
    }
    sleep(3); // this should halt for 3 seconds for every loop
}

Đã trả lời ngày 14 tháng 3 năm 2013 lúc 16:18Mar 14, 2013 at 16:18

Mavilimavilimavili

3.2954 Huy hiệu vàng29 Huy hiệu bạc45 Huy hiệu Đồng4 gold badges29 silver badges45 bronze badges

3

Tôi thấy những gì bạn đang làm ... bạn trì hoãn một tập lệnh để liên tục kiểm tra một tệp trên hệ thống tập tin (một tập lệnh đang được tải lên hoặc được viết bởi một tập lệnh khác mà tôi giả sử). Đây là một cách tồi tệ để làm điều đó.

  1. Kịch bản của bạn sẽ chạy chậm. Làm nghẹt máy chủ nếu một số người dùng đang chạy tập lệnh đó.
  2. Máy chủ của bạn có thể hết thời gian chờ cho một số người dùng.
  3. Truy cập ổ cứng là một nguồn tài nguyên tốn kém.
  4. Có nhiều cách tốt hơn để làm điều này.

Bạn có thể sử dụng Ajax. Và sử dụng thời gian chờ để gọi tập lệnh PHP của bạn cứ sau vài giây. Điều này sẽ tránh tải tập lệnh chậm. Và bạn cũng có thể tiếp tục thực hiện nó liên tục (dòng điện cho vòng lặp sẽ chỉ chạy trong 33 giây và sau đó dừng lại).

Bạn có thể sử dụng cơ sở dữ liệu. Trong một số trường hợp, truy cập cơ sở dữ liệu nhanh hơn truy cập ổ cứng. Đặc biệt là với quan điểm và bộ nhớ đệm. Tập lệnh tạo tệp/tải lên tệp có thể đặt cờ trong bảng (tức là File_Exists) và sau đó bạn có thể có một tập lệnh kiểm tra trường đó trong cơ sở dữ liệu của bạn.

Đã trả lời ngày 14 tháng 3 năm 2013 lúc 16:39Mar 14, 2013 at 16:39

Hướng dẫn sleep in for loop php - ngủ trong for loop php

HusmanhusmanHusman

6.6699 Huy hiệu vàng28 Huy hiệu bạc47 Huy hiệu đồng9 gold badges28 silver badges47 bronze badges

3

Bạn có thể sử dụng sleep(3) trong đó ngủ trong 3 giây.

Phương pháp ngủ hiệu chỉnh trong PHP là trong vài giây. sleep method in php are in seconds.

Phil

8089 Huy hiệu bạc15 Huy hiệu Đồng9 silver badges15 bronze badges

Đã trả lời ngày 14 tháng 3 năm 2013 lúc 16:20Mar 14, 2013 at 16:20

devbinnoohdevbinnoohdevBinnooh

6113 Huy hiệu bạc12 Huy hiệu đồng3 silver badges12 bronze badges

4

Hare là hai cách để ngủ tập lệnh PHP trong một khoảng thời gian. Khi bạn có mã của mình và muốn tạm dừng tập lệnh hoạt động trong một thời gian, hãy sử dụng các chức năng này. Trong các ví dụ này, phần đầu tiên của mã sẽ được thực hiện trên tập lệnh chạy và phần thứ hai của mã sẽ được thực hiện nhưng với độ trễ thời gian.he first part of code will be done on script run and the second part of code will be done but with time delay.

  1. Sử dụng hàm Sleep () Bạn có thể xác định thời gian ngủ trong vài giây.

Example:

echo "Message 1";
// The first part of code.
$timeInSeconds = 3;
sleep($timeInSeconds);
// The second part of code.
echo "Message 2";

Bằng cách này, có thể ngủ tập lệnh PHP trong 3 giây. Sử dụng chức năng này, bạn có thể ngủ tập lệnh cho toàn bộ số (số nguyên) của giây.

  1. Sử dụng hàm us ngủ () Bạn có thể xác định thời gian ngủ tính bằng micro giây. Thời gian ngủ này thuận tiện cho các khoảng thời gian đòi hỏi thời gian chính xác hơn một giây.

Example:

echo "Message 1";
// The first part of code.
$timeInMicroSeconds = 2487147;
usleep($timeInMicroSeconds);
// The second part of code.
echo "Message 2";

Bạn có thể sử dụng chức năng này nếu bạn muốn ngủ PHP cho các giá trị thời gian nhỏ hơn so với thứ hai (float). Trong ví dụ này, tôi đã đặt tập lệnh vào giấc ngủ trong 2,487147 giây.

Đã trả lời ngày 31 tháng 1 năm 2017 lúc 15:59Jan 31, 2017 at 15:59

NolenoleNole

7617 Huy hiệu bạc9 Huy hiệu Đồng7 silver badges9 bronze badges

Bạn đã xem xét sử dụng tập lệnh daemon PHP bằng cách sử dụng giám sát. Tôi sử dụng nó trong nhiều nhiệm vụ được yêu cầu phải chạy mọi lúc.

Bắt được đảm bảo rằng mỗi lần bạn chạy tập lệnh, bạn kiểm tra tài nguyên bộ nhớ. Nếu nó quá cao, hãy dừng quá trình và sau đó để nó tự khởi động lại.

Tôi đã sử dụng thành công quy trình này để luôn luôn kiểm tra các bản ghi cơ sở dữ liệu cho các tác vụ để xử lý.

Nó có thể là quá mức cần thiết nhưng đáng để xem xét.

Đã trả lời ngày 31 tháng 5 năm 2016 lúc 2:03May 31, 2016 at 2:03

Giấc ngủ là gì () trong PHP là gì?

Hàm giấc ngủ () chấp nhận vài giây như một tham số và trả về thành công hoặc sai khi thất bại.Nếu cuộc gọi bị gián đoạn bởi một tín hiệu, hàm Sleep () sẽ trả về giá trị khác không.Trên Windows, giá trị này sẽ luôn là 192 trong khi, trên các nền tảng khác, giá trị trả về sẽ là số giây còn lại để ngủ.accepts seconds as a parameter and returns TRUE on success or FALSE on failure. If the call is interrupted by a signal, sleep() function returns a non-zero value. On Windows, this value will always be 192 whereas, on other platforms, the return value will be the number of seconds left to sleep.

Làm thế nào để bạn trì hoãn một vòng lặp trong PHP?

Bạn có thể sử dụng giấc ngủ (3) ngủ trong 3 giây.Phương pháp ngủ hiệu chỉnh trong PHP là trong vài giây.Đó là giấc ngủ (3), không ngủ (3000).Ngủ (3000) sẽ ngủ gần một giờ!sleep(3) which sleeps the thread for 3 seconds. Correction sleep method in php are in seconds. it's sleep(3) , not sleep(3000). sleep(3000) will sleep for nearly an hour!

Làm cách nào để tạm dừng tập lệnh PHP?

Để trì hoãn việc thực hiện chương trình cho một phần nhỏ thứ hai, hãy sử dụng us ngủ () vì hàm ngủ () mong đợi một int.Ví dụ: giấc ngủ (0,25) sẽ tạm dừng thực hiện chương trình trong 0 giây.use usleep() as the sleep() function expects an int. For example, sleep(0.25) will pause program execution for 0 seconds.

Có chức năng chờ trong PHP không?

Hàm chờ đình chỉ thực thi quy trình hiện tại cho đến khi một đứa trẻ thoát ra hoặc cho đến khi tín hiệu được chuyển giao có hành động là chấm dứt quy trình hiện tại hoặc gọi chức năng xử lý tín hiệu.