【競艇・ボートレース】タスクスケジューラの落とし穴 9件全てが実は動いていなかった実体験

結論

Windows のタスクスケジューラに登録していた自動処理 9 件は、すべて「.bat 経由での起動」設定が原因で 1 回も実行されていませんでした。起動方式を Python 本体への直接指定に変更することで、手動トリガーでも正常に動作することを確認しています。

詳細(何が起きたか・原因・対策)

何が起きたか

私が運用している競艇・ボートレース関連の自動処理は以下の 9 件です。

  • JRA 競馬予想(3 件)
  • 日次点検
  • オッズ取得
  • 朝のメール送信
  • 夜間データ収集
  • note 投稿
  • 週次集計

すべてのタスクは「.bat ファイル経由で起動する」設定になっていましたが、実際にタスクが走った履歴は一つも残っていませんでした。

原因

手動でコマンドを再現したところ、.bat ファイルから Python スクリプトを呼び出す際にパスや環境変数の扱いが不適切であることが判明しました。具体的には、.bat 内で Python の実行ファイルをフルパスで指定していなかったため、タスクスケジューラの実行コンテキストでは Python が見つからず、エラーで終了していました。

特に JRA 予想タスクは「土・金・日」に実行されるよう設定していましたが、実績としては一度も本番で正常に稼働した記録がありませんでした。

対策

起動方式を「.bat 経由」から「Python 実行ファイルを直接指定」へ変更しました。変更後は以下の手順で確認しています。

  • タスクスケジューラのプロパティで「プログラム/スクリプト」に Python のフルパスを入力
  • 引数欄にスクリプトファイル名と必要なオプションを指定
  • 手動トリガーで実行し、期待通りの出力が得られることを確認

この変更により、すべてのタスクが予定通りに起動し、ログにも正常完了の記録が残るようになりました。

まとめ

「タスクスケジューラに登録してあるから動いているはず」という前提は、実際にログや結果を確認しない限り危険です。特に共通の起動方法(.bat 経由)を複数タスクで使用している場合、同じ設定ミスが連鎖的に影響します。

今回の経験から学んだことは、

  • タスク実行結果は必ず目視または自動的に記録して確認する
  • 起動コマンドはシンプルかつフルパスで指定し、環境依存を減らす
  • 定期的に手動で実行テストを行い、タスクスケジューラ自体の挙動を検証する

これらを意識すれば、同様の落とし穴を防ぎ、安定した自動処理環境を維持できるでしょう。

関連記事はこちら: ブログ一覧

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Scroll to Top