サーバー上で5分ごとにスクリプトを実行したいと思います。 cronジョブなどを実行するための管理権限はありません。
私はPHPプログラマーとしては得意ではないので、この質問は奇妙に見えるかもしれませんが、理解できたら解決策を教えてください。
私は webcron.org を使用しています。これは手頃なオンラインサービスです。私にとっての利点は、すべてのサーバーでスケジュールされたすべてのタスクの概要を把握できることです。
あなたの唯一の解決策は「PoorMan'sCron」のように聞こえます。
5分ごとにのみ実行されるすべてのページの上に配置するスクリプトを作成します。ただし、5分ごとに実行されるとは限りません。誰かが「貧乏人のcron」のあるページにアクセスする必要があり、5分以上誰もアクセスしない場合は、誰かがアクセスするまで実行されません。
いくつかのサンプルコード:
<?php
// load the last run time from a file, database, etc
if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes
// do your task here
// save the last run time to a file, database, etc
}
ここに別の「ハック」があります。スクリプトがあるマシンではcronを実行できないため、別のマシンでcronを実行できる可能性があります。
可能であれば... 5分ごとに実行するようにcronジョブを設定します...ジョブは、他のPHPスクリプトを呼び出す単純なPHPスクリプトにすることができます。 cURL を使用して、スクリプトを「呼び出す」ことができます(そのスクリプトがWebサーバーによって提供されている場合)
(リンクからのコンテンツを含むように編集されました。)
cron
など)。 crontabファイルを解析し、ジョブスケジューリング定義をMySQLデータベーステーブルに抽出できます。スケジュールされたジョブを実行するときは、crontab定義のjobコマンドをPHPコードとして別のプロセスとして実行します。ジョブの出力PHP =コードはデータベーステーブルにも保存されます。サーバーがLinuxの場合の私の解決策。 bashスクリプトを作成します。
#bin/bash
while [ true ]
do
//do whatever you want, use curl, lynx to your page...
sleep 5m
done
それを実行し、サーバーが再起動しないか、スクリプトが強制終了されない場合は問題ありません。
これは良い解決策ではありませんが、機能します。
それが私のやり方です
if(date('i', time())%5==0) {
// run this code
}
このツールがあなたのリクエストに役立つと確信しています:
SetCronJob-www.setcronjob.com
Cronless-cronless.com
EasyCron-www.easycron.com
オンラインcronジョブ-www.onlinecronjobs.com
Corntab-www.corntab.com
getCron-www.getcron.com
ただし、別のWebサイトに依存することはお勧めできません。
Googleへの戦車
何かのようなもの:
ini_set('max_execution_time', 'sometime');
while(1){
//do something
sleep(sometime);
}
私はこれを行うことをお勧めしませんが。ニーズを満たすサーバーに移動する時が来ました。