Cara menggunakan php nanosleep

Fungsi nanosleep() menyebabkan utas saat ini ditangguhkan dari eksekusi hingga interval waktu yang ditentukan oleh argumen rqtp telah berlalu atau sinyal dikirimkan ke utas pemanggil dan tindakannya adalah memanggil fungsi penangkap sinyal atau menghentikan proses. Waktu penangguhan mungkin lebih lama dari yang diminta karena nilai argumen dibulatkan ke atas menjadi kelipatan bilangan bulat dari resolusi tidur atau karena penjadwalan aktivitas lain oleh sistem. Namun, kecuali untuk kasus diinterupsi oleh sinyal, waktu penangguhan tidak akan kurang dari waktu yang ditentukan oleh rqtp, sebagaimana diukur oleh jam sistem, CLOCK_REALTIME

Penggunaan fungsi nanosleep() tidak berpengaruh pada aksi atau penyumbatan sinyal apa pun

Nilai Pengembalian

Jika fungsi nanosleep() kembali karena waktu yang diminta telah berlalu, nilai kembaliannya adalah 0

Jika fungsi nanosleep() kembali karena telah diinterupsi oleh sinyal, fungsi mengembalikan nilai -1 dan menyetel errno untuk menunjukkan interupsi. Jika argumen rmtp bukan NULL, struktur timespec yang direferensikan olehnya diperbarui untuk memuat jumlah waktu yang tersisa dalam interval (waktu yang diminta dikurangi waktu yang benar-benar tidur). Jika argumen rmtp adalah NULL, sisa waktu tidak dikembalikan

Jika nanosleep() gagal, ia mengembalikan -1 dan menyetel errno untuk menunjukkan kesalahan

Kesalahan

Fungsi nanosleep() akan gagal jika

EINTR

Fungsi nanosleep() terganggu oleh sinyal

EINVAL

Argumen rqtp menetapkan nilai nanodetik kurang dari nol atau lebih besar dari atau sama dengan 1000 juta

fungsi nanosleep di C digunakan untuk menangguhkan eksekusi program untuk jumlah waktu tertentu selama nanodetik. Fungsinya bisa ada di header di C. Fungsi lain untuk menangguhkan eksekusi program adalah fungsi tidur yang menyediakan penangguhan resolusi tingkat rendah tetapi dalam nanosleep kami memiliki keuntungan untuk menjeda program selama nanodetik i. e. , memiliki presisi tinggi

Halaman yang merujuk ke halaman ini. pmsleep(1), clock_nanosleep(2), prctl(2), restart_syscall(2), syscalls(2), aio_suspend(3), getaddrinfo_a(3), tidur(3), ualarm(3), usleep(3), sinyal(7), tipe_data_sistem(7), waktu(7), ruang_nama_waktu(7)

Sleep dalam bahasa Inggris artinya tidur, tetapi dalam PHP bisa berarti pause atau tunda. Dengan fungsi sleep(), Anda dapat membuat skrip dieksekusi pada waktu yang Anda inginkan, misalnya seperti pada proses menjalankan detik jam. Ini berbeda dengan fungsi max_execution_time yang berguna untuk membatasi waktu eksekusi script

Jika Anda pernah membuat jenis skrip pengunggah melalui URL, Anda harus menunggu hingga proses pengambilan file selesai saat mengirimkan data, dan terkadang semua file tidak dapat diunduh karena koneksi lambat, tetapi dengan bantuan tidur ( ) anda tidak perlu ragu karena waktu akan berjalan terus sampai data yang diambil bisa di download ke server, anda hanya perlu menyesuaikan waktunya

Sebenarnya ada 2 jenis fungsi seperti sleep(), yaitu usleep() hanya usleep yang menggunakan microseconds, jadi menurut saya ini masih merupakan fungsi sleep yang sederhana, yang hanya menggunakan waktu detik. Berikut adalah contoh penggunaan fungsi sleep()

<?php
echo date('H:i:s');
sleep(20);
flush();
echo "<br>";
echo date('H:i:s');
?>

Menggunakan 2 tampilan (echo) untuk membedakan antara script yang belum menggunakan sleep() dan sesudahnya, dan diatasnya juga menggunakan fungsi flush() untuk mempercepat loading halaman dengan buffer. Dan hasil dari kode diatas akan menjadi seperti ini

01. 00. 12
01. 00. 32

Di bagian kedua akan berbeda. Hasil waktu di atas adalah sebelum menggunakan fungsi sleep dan yang di bawah sudah menggunakan fungsi sleep. Sekarang mungkin anda sudah mengerti kegunaan dari fungsi sleep()
Jika biasanya di PHP waktu maksimal untuk mengeksekusi script adalah 30 detik, namun dengan fungsi sleep, Anda bisa membuat waktu tunda sesuai keinginan

Contoh lain penggunaan sleep(), baik digunakan untuk website yang mengambil konten dari situs lain (grabbing). Jadi sebaiknya gunakan delay 1 sampai 2 detik agar situs grab tidak menerima banyak permintaan dalam waktu dekat atau cepat dan segera. Tidak hanya menghemat CPU, juga membuat website lebih bermanfaat 😀

I have spent DAYS trying to create a reliable usleep()-replacement for Windows._

I have only this to offer:

As commented by someone else already, the gettimeofday() method used below is useless - PHP will use all available CPU power doing nothing.

The fsockopen() method apparently is also useless - as someone else commented, an fclose() was missing in the original post, but this apparently does not solve the problem. After calling the function about 50 or so times, fsockopen() returns immidiately, without any delay - and watching a process monitor in Windows, you can then watch the process taking up increasingly more memory, until eventually PHP aborts (or crashes) when it reaches maximum._

The win32api-method is also a no-go .. after calling the Sleep function a few hundred times (during which memory usage will also go up every time due to a memory leak somewhere), PHP will cause an exception and Windows will terminate it.

I have given up - I don't think there is any viable solution to this problem under PHP 4._

If you need this function, upgrade your project to PHP 5.

Or settle for 1-second delays with the sleep()-function._

These, unfortunately, seem to be your only options..._