一覧から古い作品が消えた失敗と、記事公開の仕組みを見直した話
この記事では、一覧から過去の作品が消えていた不具合の修正と、記事を途切れさせずに出し続けるための仕組みの見直しについてお話しします。システムは作って終わりではなく、手入れを自動化して運用し続けることの大切さを改めて学びました。
古い作品が一覧から消えていた不具合
まずは恥ずかしい失敗のお話です。ASMRの作品を一覧で表示する際、古い作品がごっそり見えなくなってしまう不具合がありました。調べてみると、最新のものから最大1000件の音源データを取り出す仕組みになっていたことが原因でした。音声トラックが多い作品が少し増えただけで1000件の枠が埋まってしまい、実測では50作品中40作品(うち有料作品36作品)が画面から消えてしまっていました。
これを解決するため、1000件ずつ分割して全て読み込む「ページング(データを少しずつ区切って読み込む仕組み)」という方法に変更しました。処理が暴走するのを防ぐための上限も設けています。あわせて、夜間に年齢制限のある作品を処理する上限も12から16へ少しだけ増やしました。メディア一覧などで正しく過去の作品が表示されるようになっています。
記事を途切れさせないための工夫
開発ノートも含め、記事の出し方も見直しました。開発ノートは実際の作業量によって書ける内容が変わるため、毎日公開することが難しいという課題がありました。
そこで、開発ノート用の記事の在庫がない日は、午後の公開枠を通常記事で埋める「フォールバック(予定していた処理ができない時に別の処理で代用する仕組み)」を導入しました。これにより、枠を空けたままにせずサイトの更新頻度を保てるようになります。
また、同じ日に記事が二重公開されるミスも直しました。これまではデータベースの記録だけで判断していたため、代替公開をした日に「今日はまだ開発ノートが出ていない」とシステムが誤解し、cron(定期的にプログラムを自動実行する仕組み)がもう一本記事を出してしまうことがありました。現在は公開枠ごとにしっかりと別のファイルへ記録を残すように変更しています。
週1回の自動メンテナンス
記事は公開して終わりではなく、放っておくと似た記事同士が検索順位を奪い合う「カニバリ」が再発したり、内容が薄い記事がそのまま残ったりします。そこで、週に1回、日曜日の朝10時半に自動でサイト内の手入れを行う仕組みを作りました。
薄い記事の書き直しや、素材の補充を行います。書き直しには30日のお休み期間を設け、毎週同じ記事を作り直さないようにしています。文章生成が失敗した場合は、agy(開発作業を助けてくれるツール)を使って1度だけやり直します。
さらに、毎朝9時に開発ノートの下書きを作る際、実際のコミット履歴(プログラムの変更内容を記録した履歴)から自動で事実だけを抽出するようにしました。今回は3件の変更を元に記録しています。改行で細かく途切れた文章も、意味のまとまりごとに繋ぎ直して使います。これにより、「事実のみを書く」というルールを確実に守れるようになります。AIを使う時の鍵(キー)も、利用枠を使い切ったときだけ自動で次のものに切り替わるように設定しました。
この日の学び
- データを取得する上限設定は、データが増えた時のことを考えないと、気づかぬうちに古い情報が脱落してしまう。
- サイトの更新頻度を保つには、記事が用意できなかった時の代わりの動き(フォールバック)を用意しておくことが大切。
- 記事の品質を保ち続けるためには、定期的な振り返りと手入れを自動化する仕組みが欠かせない。