私はMySQLを使用するウェブサイトを持っています。私は "人"という名前のテーブルを使用していますが、各行は明らかに人を表しています。ユーザーがページを入力すると、その人に関連するニュース(MySQLテーブルの情報と一緒に)を紹介したいと思います。そのために、私はBING News Source APIを使うことにしました。複数のURLを取得し、PHPスクリプトでDBを更新する
ページロードごとにBING APIを呼び出す方法の問題は、ページの読み込み時間(BINGサーバーへのラウンドチップ)が増えていることです。したがって、私はすべてのニュースを事前に取得して、「ニュース」という名前の色付きでテーブルに保存することに決めました。
私のテーブルには5,000人以上の人がいるので、PHPスクリプトを実行してすべての人物のニュースをすべてダウンロードし、一度にテーブルを更新すると、Fatal error: Maximum execution time
になります(タイムアウトを無効にしたくないです。 。
このようなスクリプトを実行するにはどのような方法が適していますか?私は毎回ローの一部だけを更新する5分ごとにcronジョブを実行できますが、その場合でも現在のオフセットを保存する最良の方法は何でしょうか?私は、MySQLまたはサーバーvarとしてオフセットを保存する必要がありますか?
ありがとうございました!これらのスクリプトのタイムアウトを増やすことは可能ですか?他のすべてのPHPではデフォルトのタイムアウトがありますか? – Joel
PHPプロセスを生成するには、includeまたはrequireを参照するのではなく、直接スクリプトを実行するためにPHPを再度呼び出す必要があります。各スポーンプロセスが独自のデフォルトタイムアウトを使用していることを意味します。ここを参照してください:http://stackoverflow.com/questions/45953/php-execute-a-background-process – ajreal
ああ大変申し訳ありません。わかった。 Your'eはApache(タイムアウトの制限があります)を介してスクリプトとして実行するのではなく、linuxのPHPプロセスとして実行することをお勧めします。ありがとう! – Joel