Solusi 1:
Saya memiliki tugas serupa minggu lalu. Solusi saya adalah melipatgandakan entri cron standar ke frekuensi yang diinginkan. Crontab saya terlihat seperti:
* * * * * /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php
Jika Anda ingin memeriksa hasil myscript.php, mis. untuk debugging, cukup tambahkan
&> /tmp/myscipt.log
ke setiap baris di crontab di atas. Kemudian stderr dan stdout dialihkan ke file log.
Solusi 2:
Anda tidak dapat menjadwalkan pekerjaan setiap sepuluh detik, tetapi saya kira Anda dapat menjadwalkan pekerjaan untuk dijalankan setiap menit, dan tidur dalam satu lingkaran dalam interval 10 detik. Ini akan didasarkan pada perintah Anda diselesaikan sebelum interval sepuluh detik berakhir, atau Anda akan mendapatkan tumpang tindih saat perintah berikutnya dijalankan. Ini terasa seperti solusi yang genting, tetapi jika Anda dapat menjamin eksekusi yang sangat singkat dari perintah utama skrip, ini akan berhasil.
#!/bin/bash
i=0
while [ $i -lt 6 ]; do
/run/your/command &
sleep 10
i=$(( i + 1 ))
done