たとえば、特定の入力に基づいて難しい計算を行う PHP 関数があるとします。
function count_score($var1, $var2, $var3){
// based on $var1, $var2 and $var3 we run
// a 5000-lines long calculation,
// resulting in one $output
return $output;
}
さて、ここで何が起こるか:
- 関数の実行には約 1 秒かかります
- 入力できる $var1、$var2、および $var3 の組み合わせは多くありません (およそ 3000 程度)。
私は何ができますか:
すべての組み合わせに基づいて関数の結果を保存し、それが以前に計算されたかどうかを確認できます。これをユーザーごとに $_SESSION に保存できるので、関数が呼び出されるたびに、結果が $_SESSION で検索されます。
しかし、これらの結果をすべてのユーザーに保存したい場合はどうすればよいでしょうか? $_SESSION は、すべてのユーザーに対してサイト全体でグローバルに共有されていないため、使用できません。ではどうやって保管すればよいのでしょうか?
計算結果が異なるのは、関数を変更したときだけで、48 時間に 1 回程度です。次に、関数のリビジョンを手動で指定し、そのリビジョンの結果を確認できます。しかし、これらすべてをどのように/どこに保存しますか?
編集オプションで、メソッドは CRON (http レイヤーなし) で機能する必要がありますが、必須ではありません。