ページを更新するのはブラウザの機能なので、うまくいかないかもしれません。
質問: 5 分ごとよりも頻繁に cron ジョブを実行するように設定できないのはなぜですか?
他に選択肢がない場合は、より頻繁にジョブを実行する独自のデーモンを作成できます。
たとえば、php スクリプトは次のようになります。
- 走る
- 60 秒待ちます
- 走る
- (待機;実行;あと2回)
- 出口
例: ( sshowのコードのバリエーションによる)
<?php
$secs = 60;
ignore_user_abort(true);
set_time_limit(0);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
?>
このバージョンのスクリプトは 4 分間常駐し、コードを 4 回実行します。これは、このスクリプトが cron によって 5 分ごとに実行される場合、毎分実行するのと同じです。
cronjob とは何か、またどのように実行されるかについては、いくつかの混乱があるようです。
cronはバックグラウンドで動作するデーモンであり、crontabで指定されたスケジュールでシェルを介してタスクを実行します。
各ユーザーには crontab があり、システム crontab があります。
各ユーザーの crontab は、そのユーザーとして実行されるジョブを指定できます。
例えば:
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# run at 2:15pm on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 * * sun echo "run at 5 after 4 every sunday"
したがって、5 分ごとに実行するには:
*/5 * * * * echo "This will be run every five minutes"
または、毎分実行するには:
* * * * * echo "This will be run every minute"
コマンドからの出力は、crontab の所有者 (または MAILTO で指定) に電子メールで送信されます。これは、すべての通常の出力が抑制またはリダイレクトされていることを確認しない限り、毎分何かを実行すると、毎分メールが送信されることを意味します。
コマンドは、crontab を所有するユーザーとして実行されます。これは、「nobody」ユーザーとして実行される Web サーバーによって実行されるスクリプトとは対照的です (または同様の - Web サーバーが実行するように構成されているものは何でも)。これにより、Web サーバーによって実行されるスクリプトによってアクセスされるはずのファイルに cronjob が書き込んでいる場合、作業がより複雑になる可能性があります。基本的に、権限が正しいままであることを確認する必要があります。
さて、これがあなたが言及しているシステムであるかどうかはわかりません。それまでに何か他のことを意味する場合cronjob
、上記は当てはまらない可能性があります。
現在のホストが許可していないことをしたい場合は、制限を回避するのではなく、ホスティングプロバイダーの切り替えを検討する必要がありますか?
別の方法は、スクリプトを通常のスクリプトの場所に配置し、外部スケジューラで wget を好きな頻度で実行することです。
別の代替手段は、vartecの提案の形式のオンデマンド更新です。ただし、それで問題が解決しない場合があります。