編集ページの時限公開とキャッシュ設定の関連について

2018年5月21日 at 11:23

編集したページを土曜日のお昼に公開しようと思い、ページの時限公開を設定をしておいたのですが、設定した時間になっても公開がされませんでした。
既に手作業で公開してしまったのでキャプチャを取れなかったのですが、下記のような状況を確認しています。

① 過去に時限公開を使って公開ができていたので、サーバの制約等でできないということは無さそう。
② 事象発生時に該当ページのバージョン情報を見たところ、公開予定だったバージョンのところに公開予定日時が表示されており(見た時点で30分以上経過していた)、現在表示されているバージョンを示す「Live」マークは別のバージョンについていた。

このような状況だったので、公開予定日時を設定していた全ページを手作業ですべて公開して事なきを得ました。

原因を探るために設定をした方に確認をしたところ、いつもと違う点として該当ページのページキャッシュ設定で前回までは念のため「このページはキャッシュしない」としていた箇所を今回は設定をしていなかったとのことでした。
デフォルトの選択は「グローバル設定を適用-フルページキャッシュを有効にする」だったと思われます。

キャッシュ設定で時限公開前の古いページが見えていた、というのならまだ理解できるのですが、バージョンでLiveマークが古いページについていたので、単純にキャッシュされたページがユーザから見えていたという事ではないように思います。

そこで質問です。

キャッシュ設定によって時限公開がされないケースはあるでしょうか?
その点も含めてページを時限公開する時に注意しなくてはいけない事があれば教えてください。

環境情報は下記の通りです。

concrete5のバージョン : 8.2
利用しているブラウザ : Chrome
concrete5が動いている環境:客先で借り上げているレンタルサーバ、PHPは7.1.5

タグ:

Re: 編集ページの時限公開とキャッシュ設定の関連について

2018年5月21日 at 12:00
フルページキャッシュの保持期間の方が、時限設定より優先されます。時限設定にシビアさが求められる場合は、フルページキャッシュの保持期間を短くするか、オフにしてください。
 

Re: 編集ページの時限公開とキャッシュ設定の関連について

2018年5月21日 at 12:01
お世話になります。

> ② 事象発生時に該当ページのバージョン情報を見たところ、公開予定だったバージョンのところに公開予定日時が表示されており(見た時点で30分以上経過していた)、現在表示されているバージョンを示す「Live」マークは

Live マークが付いていたバージョンは、スケジュール公開予定のバージョンと、何バージョン過去・未来にずれていましたか?


また、フルページキャッシュの検証を行いましたが、似た挙動が確認できました。

- ページはフルページキャッシュをオン
- ページを編集する
- 未来の日付を設定して、保存
- ゲストユーザーとしてページに訪問し、スケジュール公開前のページがゲストユーザーに現れる(フルページキャッシュがこの時点で生成。有効期限がデフォルトであれば6時間先になる)
- 公開予定のスケジュールの時間がくる
- ゲストユーザーが訪問しても、スケジュール公開されたコンテンツが現れない。
- 編集ユーザー (admin) がページに訪問すると、スケジュール公開された

もしかするとフルページキャッシュの問題かもしれません。

よろしくおねがいします。
 

Re: 編集ページの時限公開とキャッシュ設定の関連について

2018年5月21日 at 14:40
お二方とも返信ありがとうございます。

私の方でも試してみたところ、キャッシュがスケジュールより優先される事を確認できました。

加えて手動でキャッシュクリアしたところ、暫くしてから公開予定のものが公開される事を確認できました。(「暫く」というのは、クリア後に再度キャッシュをする間のタイムラグかなあと思っています)

上記と返信頂いた内容踏まえて時限公開を使うサイトでは下記いずれかで運用しようと思います。

・フルページキャッシュの保持期間を短くするまたはオフにする。
・公開日時にキャッシュをクリアする(最悪手動、あるいはcron等が使えればそれでクリア)
・デフォルトだと6時間ごとにキャッシュが更新される事を利用して公開日前日の同じ時間か6時間ずれた時間(5/19 12:00公開なら5/18 12:00もしくは18:00)にキャッシュクリアしておき、キャッシュ更新のタイミングが公開日時と合うようにする