機能をOFFにしたつもりでも、前段の処理は毎日動いていた ― 設定スイッチが止める範囲をコードで確かめた話
J-WORKSでは、アフィリエイト記事の毎日の自動生成を設定でOFFにした。これで一連の処理は止まったと考えていたが、コードを読んで確認したところ、楽天の商品情報を取得する前段の処理は、設定に関係なく毎日動き続けていた。1つの設定スイッチが実際にどこまでを止めているかを調べた記録。
検証条件
J-WORKSの社内システムには、毎朝の準備処理の中で、アフィリエイト(商品紹介)向けの記事を自動で作る流れがあった。2026年9月2日に、運営方針の見直しにより、この毎日の自動生成を設定スイッチでOFFにした。OFFにした時点では、「毎日の自動生成を止めた」、つまりアフィリエイトに関する一連の処理が止まったと受け止めていた。今回確認したのは、この設定スイッチが実際にどこからどこまでの処理を止めているのか、という点である。
実行内容
設定スイッチがプログラムのどこで参照されているかを、毎朝の準備処理のコードを順に読んで確認した。この確認では、プログラムの変更や再実行は行わず、コードを読むだけにとどめた。すると、アフィリエイトの流れは大きく2つの段に分かれていることが分かった。前段は、楽天の商品情報を取得する処理である。後段は、取得した商品の中から紹介する商品を選び、社内の審査役のAIが確認し、記事などの文章を生成する処理である。そして、設定スイッチが参照されているのは後段の入り口だけで、前段の商品情報の取得は、スイッチの状態を見ずに毎朝の準備処理の中で実行される作りになっていた。
結果
確認の結果、楽天の商品情報の取得は、設定スイッチをOFFにした後も、毎朝8時の準備処理の中で、1日1キーワード・1回あたり10件という規模で毎日続いていたことが分かった。一方、設定スイッチが実際に止めていたのは、「商品の選定→審査→文章の生成」という後段の部分だけだった。つまり、「OFFにした」という認識と、実際に止まっていた範囲との間にずれがあった。取得の規模は小さいものの、止めたつもりの機能が、外部のサービスへの問い合わせを毎日続けていたことになる。なお、この発見は調査によるものであり、この時点ではコードの変更は行っていない。その後の対応は、商品の選び方の見直しなど、別の改善として進めている。
失敗原因
ずれが生まれた原因は、設定スイッチの名前と、実際にそのスイッチが守っている範囲が一致していなかったことにある。スイッチの名前からは「毎日の自動生成全体」を止めるように読めるが、実装上は「生成」の段だけを止めるもので、その手前の「材料集め」は対象外だった。処理を前段・後段に分けて作ると、それぞれの段は独立して動くため、どの段にスイッチを置いたかを意識していないと、このような取り残しが起きやすい。設定スイッチは、処理の流れのどこか1か所に置かれる関所のようなものであり、関所より手前を通る処理は、関所を閉じても止まらない。また、一般に、記事のような目に見える成果物が止まると、「止まった」という確認はそこで終わりやすい。前段の処理は成果物を直接生まないため、動き続けていても気づきにくい。
改善
この件から、設定を変えたときは、名前から想像した効果ではなく、その設定がコードのどこで参照されているかを実際に確かめる、という手順を学びとして残した。具体的には、(1)設定の名前ではなく、設定を読み取っている箇所をコードの中で探す、(2)その箇所より前に実行される処理を書き出し、スイッチの影響を受けない処理が無いかを確認する、(3)止めたい範囲と実際に止まる範囲が違えば、その差を記録して、別途対応するか、意図して残すかを決める、の3段階である。簡略化した例: 「毎朝の処理 = 商品情報を取得する(スイッチを見ない) → もしスイッチがONなら、選定・審査・生成をする」。このような構造では、スイッチをOFFにしても1行目は動き続ける。(3)の判断では、前段の処理を残しておく理由が無いかも確かめる。
現在の結論
2026年9月2日時点で確認できたのは、アフィリエイトの自動生成をOFFにしても、楽天の商品情報の取得という前段の処理は毎日続いていたこと、そして設定スイッチが止めていたのは後段の選定・審査・生成だけだったことである。「機能をOFFにした」ことは、「その機能に関わる処理がすべて止まった」ことを意味しない。自動化の仕組みで何かを止めるときは、設定画面の表示や名前を信じるだけでなく、その設定がどの段の処理を止めているのかをコードや実行記録で確かめることをおすすめする。止まっていない処理が外部のサービスへの問い合わせや費用を伴うものであれば、なおさら確認する価値がある。設定を変える前後に確かめるとよい項目は、(1)その設定を読んでいる箇所はどこか、(2)その箇所より前に動く処理は何か、(3)前段の処理は外部への問い合わせや記録の書き込みを伴うか、(4)止めたい範囲と止まる範囲の差を、意図して残すのか、別途止めるのか、の4点である。設定の名前を、何を止めるのかが正確に分かるものにしておくことも、同じずれを防ぐ助けになる。複数の段で構成される自動化では、段ごとに「この段だけを止めるスイッチ」と「全体を止めるスイッチ」を分けて用意しておくと、意図した範囲で止めやすくなる。
根拠
2026-09-02(JST)時点で行った、社内システムのコードを読むだけの調査(変更を伴わない調査)の結果を記録した、J-WORKS社内のノウハウ記録による。