質問: pythonでツールを作っています。 pythonコーディング経験は2ヶ月ほどです。 予めツール使用アカウントを管理するためのテーブル(DBはMariaDB)を作成しています。 当該テーブルには、アカウント利用状況を示すカラムを保持しています。 以下の構想を描いています。 1. ツールの初期処理にて、アカウント利用状況を「使用中」に変更。 2. 正常終了、異常終了、キャンセル終了のいずれにおいても、アカウント利用状況を「未使用」に変更。 2.のキャンセル終了について相談したく。 私は今のところ、実行中のpythonプログラムのキャンセル(強制終了)を Ctrl-C や kill コマンドなどで行っています。このキャンセル方法では、上記構想のとおり、アカウント利用状況を「未使用」に変更することはできないと思います。 私なりに以下を考えたのですが、 「DBに専用フラグ持たせて、ツールはそのフラグで継続・キャンセルを判断する」 この方式だと、DBアクセスが多発することで、ツールの処理速度に悪影響を与えかねません。 もし、Pythonプログラムにキャンセル判定用の変数を設けて、実行中のプロセス以外からその値を変えることができれば、一応思いどおりのキャンセル処理を実現できそうですが、そんなことは可能でしょうか? 環境:Windows7, CentOS7.2, Python3.6, MariaDB, VSCodeで開発 構想を実現するためのヒント等をお示しいただけると嬉しいです。
回答: Python でなく PHP で Webシステム作ってたときに あるものの編集の競合を防ぐために、質問者さんと 同じような仕掛けを作りこみましたが... ブラウザでを終了されると同様のことがありましたねえ。 結局、権限持たせてるユーザーなら解除できる 仕掛けを作ったり、cron で定期的に一定以上の期間 編集状態のものを解除したりって感じで対処しました。 そちらのツールがどういったものか分かりませんが、 もう少し具体的なものを追記されたら、もっと違った アドバイスがでてくるかも?