Saya memiliki server http di Linux.
Saya memiliki beberapa kode PHP yang menyimpan variabel ke dalam cache menggunakan memcache dan saya ingin menjalankan kode ini setiap 500 milidetik setiap kali server berjalan, bahkan setelah server restart.
Saya berpikir untuk mengimplementasikan sebuah layanan tetapi saya tidak memiliki banyak pengalaman dengan Linux jadi saya tidak tahu bagaimana melakukan ini atau apakah itu bahkan merupakan pendekatan yang tepat.
Saya juga mendengar tentang cron-job tetapi saya melihat bahwa mereka berjalan dari menit ke menit dan bukan dari detik.
Bagaimana saya bisa menjalankan kode PHP di Linux setiap 500 milidetik (Kode akan sangat membantu)?
1
Jawaban:
Anda bisa menggunakan shell-script sederhana untuk itu:
Tanda '&' akan memotong proses di latar belakang, sehingga waktunya harus akurat. Saya kira setelah beberapa waktu itu akan menjadi tidak sinkron dengan jam nyata, jadi Anda mungkin ingin menambahkan cap waktu untuk apa pun yang dilakukan skrip Anda atau menggunakan pendekatan dengan daemon yang menggunakan waktu sistem.
(Terima kasih atas masukan dalam komentar)
Saya sarankan menambahkan skrip itu dengan systemctl. Tutorial ini terlihat bagus untuk itu: Membuat file layanan systemd saya sendiri
sumber
php
pekerjaan itu harus dilatar belakangi, jika tidak waktu eksekusi ditambahkan kesleep
waktu eksekusiphp
pekerjaan tersebut harus di-background (php /path/to/your/script.php &
). Jikaphp
pekerjaan membutuhkan waktu misalnya 0,25 detik untuk dijalankan,sleep
eksekusi akan ditunda 0,25 detik, dan skrip akan berjalan setiap 0,75 detik, bukan setiap 0,5 detik.Karena Anda terbiasa dengan PHP, Anda dapat membuat daemon / layanan PHP. Saya pernah membuat layanan PHP untuk diri saya sendiri karena saya harus menggunakan perpustakaan yang hanya tersedia dalam PHP. Ini berjalan tanpa masalah selama bertahun-tahun sekarang.
Berikut ini beberapa informasi tentang daemon PHP:
sumber