AI Publisherでは、30記事をまとめて処理した際のタイムアウトを受け、3記事ずつAJAXで進める方式へ改善しました。この記事では処理単位と、途中で止まった場合の再開・確認方法を紹介します。

開発で困ったこと

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図1

30記事をまとめて処理した際、タイムアウトが起きました。

仕組みと確認例

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図2

たとえば対象が10記事なら、3・3・3・1記事という区切りで考えられます。これは処理単位を説明する例で、10記事を今回新たに実測した結果ではありません。途中の組で失敗したときも、先に成功した組を把握できれば復旧範囲を絞れます。

確認と操作の進め方

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図3

1.対象と失敗件数を控える

対象の記事番号、すでに作成された投稿、前回失敗した記事を先に照合します。取り込みの途中で止まった場合は、成功分まで再び対象に含めないようにします。

2.3記事単位で処理を進める

開発記録のv2.5.1では、3記事ずつAJAXで処理する方式を採用しました。一度の通信で30記事すべての完了を待つ方式から、区切って次へ進む方式へ変えています。

3.再試行の結果を読む

通信失敗時の自動再試行は最大3回です。回数だけでなく、どの記事のどの工程で失敗したかを見ます。認証エラーのままなら、再試行を繰り返す前に接続を確認します。

4.成功分を確認して残りを再開する

下書きの本文と画像を確認したうえで、中断再開または失敗記事のみの再試行を使います。処理が進んだ件数と、正しく完成した件数は分けて記録するのが確認のポイントです。

開発記録で確認できる結果

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図4

v2.5.1で3記事ずつ処理し、通信失敗時は最大3回再試行、中断再開と失敗記事のみ再試行を実装しました。

この機能で注意する点

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図5

処理単位を小さくしても、記事作成から画像設定、完了記録まで連動しなければ取り込み完了とは言えません。

失敗した場合の確認順

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図6

一括取り込みが止まったら、まず作成済みの投稿IDを確認します。本文が作成されて画像だけ欠けている場合は、記事全体の再取り込みよりも、該当記事の「画像を反映」で復旧できるかを確認します。

関連する開発記録

AI Publisherの一括取り込み機能|3記事ずつ処理する仕組み:説明図7

全体の背景とバージョンごとの経緯は、AI Publisher開発の歴史にまとめています。

関連する機能:未取り込み記事だけをWordPressへ取り込む方法|全件走査を減らす改善