web-dev-qa-db-ja.com

cron、Perlなどを使用せずに5〜10分ごとにPHPスクリプトを実行する方法は?

サーバー上で5分ごとにスクリプトを実行したいと思います。 cronジョブなどを実行するための管理権限はありません。

私はPHPプログラマーとしては得意ではないので、この質問は奇妙に見えるかもしれませんが、理解できたら解決策を教えてください。

17
Hitesh Chavda

私は webcron.org を使用しています。これは手頃なオンラインサービスです。私にとっての利点は、すべてのサーバーでスケジュールされたすべてのタスクの概要を把握できることです。

15
barrycarton

あなたの唯一の解決策は「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
 }
17
MitMaro

ここに別の「ハック」があります。スクリプトがあるマシンではcronを実行できないため、別のマシンでcronを実行できる可能性があります。

可能であれば... 5分ごとに実行するようにcronジョブを設定します...ジョブは、他のPHPスクリプトを呼び出す単純なPHPスクリプトにすることができます。 cURL を使用して、スクリプトを「呼び出す」ことができます(そのスクリプトがWebサーバーによって提供されている場合)

11
milesmeow

this および this を参照してください。


(リンクからのコンテンツを含むように編集されました。)

  • PHP Cron Daemon は、タスクの実行をスケジュールするためにデータベースによって駆動されます(cronなど)。 crontabファイルを解析し、ジョブスケジューリング定義をMySQLデータベーステーブルに抽出できます。スケジュールされたジョブを実行するときは、crontab定義のjobコマンドをPHPコードとして別のプロセスとして実行します。ジョブの出力PHP =コードはデータベーステーブルにも保存されます。
3
wallyk

サーバーがLinuxの場合の私の解決策。 bashスクリプトを作成します。

#bin/bash
while [ true ]
do
     //do whatever you want, use curl, lynx to your page...
     sleep 5m
done

それを実行し、サーバーが再起動しないか、スクリプトが強制終了されない場合は問題ありません。

これは良い解決策ではありませんが、機能します。

2
Dark

それが私のやり方です

if(date('i', time())%5==0) {
// run this code
}
1
phpawy

このツールがあなたのリクエストに役立つと確信しています:

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への戦車

1
Julian Moreno

何かのようなもの:

ini_set('max_execution_time', 'sometime'); 
while(1){
    //do something
    sleep(sometime);
}

私はこれを行うことをお勧めしませんが。ニーズを満たすサーバーに移動する時が来ました。

1
pcp

私はこのサービスをお勧めします、私は今日それを使用しました、そしてそれはうまくいくようです。

cron-Job

はい、無料です!

0
Ibrahim