0

私は携帯電話の価格を掲載したウェブサイトを持っており、すべての価格は外部のサイトから手動で収集されます。必要なのは、$emag, $koyos3日ごとに更新価格()をスケジュールすることだけです。

私の手動更新クエリはこれです:

$editare = "UPDATE modele SET koyos='$koyos', emag='$emag' WHERE id ='{$id}' ";

if ($dbh->query($editare))
 {
   print "<div><h2><img src=\"http://mysite.com/images/ok.png\"/><br /><br /Succes!</h2><br />
  Vei fi redirectionat in cateva momente inspre adaugarea unui nou model de tableta sau telefon!
<meta http-equiv=\"refresh\" content=\"2; URL=index.php\"/>";
}
 else mysql_error(); 

このクエリを3日で自動的に行うにはどうすればよいですか?

!私のウェブホストはサポートしていませんcronjob SSH, cPanel or Plesk

4

1 に答える 1

4

まず、やりたいことを実行するスクリプトをPHPで作成する必要があります(基本的に、スケジュールされた時間に実行したいのはPHPコードだけであり、追加は必要ありません)。

次に、cronジョブを使用して、これを必要な頻度で実行するようにスケジュールします。

*/4 * * * * wget --spider file.phpcrontabでは4分ごとに実行されます。いくつかのcrontabチュートリアルを読みたいと思うかもしれません。

以下のリンクの1つからの画像で、希望する時間のスケジュール方法を説明しています。

ここに画像の説明を入力してください


cronジョブは基本的に、頻繁に実行されるスケジュールです。それらは本当に便利で、私はLinuxでいつも使っています。

上記のリンクは、x分ごとにスクリプトを実行するために入力する必要のある数値を説明するのに非常に役立ちますが、適切な数値を自動的に計算するには、「Cronjobcalculator」をグーグルで検索する必要があります(私は時々これを行います)。

Linuxでは、crontabがインストールされている状態で、crontab -lと入力して、すべてのcronジョブのリストを表示します。crontab -eと入力して、現在のユーザーのcronジョブリストを編集します。これは、上記で提供したコードを貼り付ける場所です。

編集:基本的なレベルでcronジョブに頭を悩ませるには、最初にcrontabをインストールします。次に、上記のコードを使用して、ファイルに書き込むスクリプトを実行します。次に、そのファイルをtail -fして、(cronジョブが開始してから4分後に)目の前でどのように更新されるかを確認します。

基本から始めましょう。次に、MySQLスクリプトを実行するように取得します。

便利なリンク:

http://www.linuxweblog.com/crotab-tutorial
http://clickmojo.com/code/cron-tutorial.html(これはよさそうです)
http://www.tutorial5.com/content/view/95/51 /
http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/(分/日の説明)

注:1分未満は実行できません。最後のリンクはsleep()これを回避するためのコマンドを提案しているので、それをチェックしてください。


OPの質問の問題は、非常に制限された共有ホスティングを使用しているため、SSH、cPanel、cronjobsなどにアクセスできないことです。

ここでのオプションは、最後にアンパサンド(&)を使用してexec()、またはshell_exec()、を 使用してPHPファイルを取得するための別のプロセスをスピンオフし、OPが必要とする日数の長い時間を実行することです。これにより、PHPスクリプトがサーバーのバックグラウンドで実行されます。nohupsleep()

上記の例では、セーフガードを設定する必要があります。つまり、サーバーを再起動すると、スクリプトは実行されなくなり、再起動する必要があります。逆に、ユーザーが誤って間違った時間にスクリプトをヒットした場合(または他の誰かがヒットした場合)、複数のプロセスが生成されるため、たとえばプロセスがすでに実行されているかどうかを確認するための保護手段が発生する可能性があります(または基本的なパスワード入力要件が役立つ場合があります)偶発的なヒットを避けるため)。

于 2013-03-21T09:41:44.060 に答える