0

現在、Laravel を使用して小さなアプリケーションを作成しており、ダッシュボードに天気を表示したいと考えています。そのために、Forecast.io API にアクセスする Composer パッケージを使用します。ただし、その API には 1 日あたりの無料呼び出しのレート制限があるため、Laravel 機能を使用してデータをキャッシュし、数分ごとに更新したいと考えています。

そのためには、次の 2 つの方法が考えられます。

  1. ポーリングの前にデータのキャッシュをチェックし、キャッシュ データが x 分後に期限切れになるようにするカスタム クラスを作成します。
  2. キャッシュ内の気象データを定期的に更新するだけの cronjob を Laravel で作成します。

私の観点からは、キャッシュが空になっても常にデータを利用できることが保証されるため、最初のオプションの方が優れているようです。それとは別に、それはただきれいに見えます。

問題は次のとおりです。Laravelでそのようなクラスを実装する方法がわからず、公式ドキュメントにも何も見つかりませんでした。私の願いは、データを提供する Facade を呼び出すだけで、残りはバックグラウンドで処理されることです。そのような Facade をどこに配置し、どのようにセットアップするかを知る必要があるだけです。

よろしく、

ヘイコ

4

1 に答える 1

1

そのためのクラスさえ必要ありません

$weather = Cache::remember('weather', $minutes, function() {
    // Your API call
    return $weather;
});

ここでドキュメントを見ることができます

この方法の欠点は、キャッシュが空の場合、ユーザーが API 呼び出しを待機することです...

値をキャッシュに保存してから取得するだけの場合は、引き続き cron を使用できます。

于 2016-03-13T21:53:02.780 に答える