作成日:

Journal - 制作日誌 - 自動アーカイブ機能を実装しました

前回[ Journal - 制作日誌 - 記事のアーカイブ機能をつけました ]にて記事のアーカイブ機能を実装しましたが、それはあくまで「手動」でアーカイブするものでした。その面倒くささを解消するために「自動アーカイブ機能」を実装することにしました。

前回の記事では「1年間でPV数が250以下だったらアーカイブ予定」と書いていたのですが、それをいちいち手動で確認して設定していくのは面倒くさすぎる…!ということで、その手間を解消するために「自動アーカイブ機能」を実装することにしました。

自動でブログの記事をアーカイブしている機械のイラスト (Gemini 画像生成)
自動でブログの記事をアーカイブしている機械のイラスト (Gemini 画像生成)

自動アーカイブ機能とは

自動アーカイブ機能とは、記事が一定期間経過した後に自動的に記事をアーカイブファイルに移動する機能のことです。

古参の人なら分かると思いますが、いわゆる 2ch (5ch) のスレッドの dat落ち のようなイメージですね。

現在の仕様と条件の葛藤

プログラムの処理としては、毎日午前0時にCron(クーロン)を回して、以下の条件に合致する記事を自動判定してアーカイブステータスに変更するように実装しました。

- 公開後、90日はアーカイブ対象外とする。

- 90日経過後に「30日間で40ビュー以下」の記事をアーカイブ対象とする。

ここで一番悩んだのが「どの数値をボーダーラインにするか」です。

兎にも角にもカウンターをつけ始めたのが「1月後半」からなので、実際に日々のアクセスログの推移がどうなっているのか、まだデータが不十分なんですよね。

そのため、とりあえずは「1日1ビュー強」という計算で「30日間で40ビュー以下」という条件を仮置きしてみました。今後のアクセス数の推移や、バッチ処理で実際にどれくらいの記事が「dat落ち」していくのかを見ながら、必要に応じてこのしきい値(条件)は変更していく予定です。

アーカイブされた記事は見れなくなるの?

アーカイブされた記事は、タイムラインページやカテゴリーページからは見れなくなりますが、 アーカイブページ から参照したり、URLを入力すれば(SNSからの流入や直接リンク)見られるようになっております。

逆アーカイブ機能はつくらないの?

もしも、アーカイブにしてて後からSNS等でうっかり人気になってしまった(ビュー数が急激に伸びた)記事があった場合、バッチ処理で自動的に表に戻す「逆アーカイブ機能」をつけることも検討していますが⋯現状は考えていません。

複雑なシステムを組むよりは、手動で戻せる環境はあるので、必要に応じて対応していくという「ゆるい運用」にしておこうと思います。