web-dev-qa-db-ja.com

一時的なAPIを使用してソーシャルカウンターに投稿する

投稿ごとにソーシャルカウンタをキャッシュするために一時的なAPIを使用するのが良い方法かどうかを知りたいです。投稿ページの読み込みは、すべてのソーシャルAPIを処理して取得する間、かなり遅くなります。

5
Webfreak

はい、ソーシャルカウントはトランジェントを使用するための優れたユースケースです。前述したように、ページの読み込みが遅いことを除けば、これは、外部からの要求がすべてのページの読み込みに対して行われている場合にAPIの制限を超えないようにするのにも役立ちます。

30分キャッシュするように設定していて、データがフロントエンドにロードされたときにキャッシュの有効期限のチェックが行われている場合、30分ごとにデータが再ロードされるまでのページロード時間が遅くなります。キャッシュされました。これを回避するには、cronジョブによる更新を実行してユーザーエクスペリエンスに影響を与えないようにするか、サイトが非常にアクティブで新しいコンテンツが投稿されている場合はポストエディット/ポストセーブなど、他のフックでキャッシュが有効であることを確認します。しかし、新しいコンテンツが作成されていない期間があると、ソーシャルカウントが少し古くなってしまう可能性があります。

また、AJAXを介してカウントを計算してロードし、ページがロードされてからソーシャルカウントが取り込まれるようにして、フロントエンドユーザーからロード時間の問題を完全に排除することもできます。

Mark JaquithのTLC Transients pluginを使用することを強くお勧めします。それはソフトシャットダウンとバックグラウンド更新(シャットダウンフックでデータフェッチをすることによって)を可能にします、それは競合状態であなたを救うであろうロックもします。例:キャッシュが期限切れになり、1万人が同時にページにアクセスした場合、カウントを再計算してデータがキャッシュされるまでそれをキャッシュするために、すべてのユーザーがプロセスを起動します。ロックは他の何かがすでにそれを計算しようとしているかどうかをチェックし、同様に次の人が計算をしないようにします。競合状態のために30Kの要求が出されることがありました。

7
TomHarrigan