ソルバの追加方法
ここではソルバの追加方法を説明します.
1. ソルバの実装
ソルバを実装する.
Gitリポジトリとして実装することを強く推奨. (以下,Gitリポジトリとして実装するものとして手順を説明)
2. Submoduleとして追加
以下の手順でソルバを追加する.
cd solvers
git submodule add [your git repository] [target folder name]
これで,solvers/[target folder name]にソルバが追加される.
3. Pythonスクリプトの追加
-
solvers/[target folder name]/以下に適当なpythonスクリプトを配置. -
solveメソッドとstopメソッドを実装.
-
solveメソッド- 引数: params
- params['problem']: 問題の文字列
- params['timeout']: 問題を解くときのタイムアウト時間[s]
- 戻り値: [dict形式]
- 'status': done/failed/timeout
- 'solution': 答え
- 引数: params
-
stopメソッド-
solveメソッドが実行中場合,強制的に実行を中止するコマンド -
solveメソッドを中止させる方法-
solveメソッド内でsubprocessを使って外部コマンドを実行している場合,terminateを使ってSIGTERMシグナルを実行中のプロセスに送信する. -
solveメソッド内でループ処理を使って結果取得をポーリングしている場合,ループ処理内でstop_flag変数を監視するようにする.stopメソッドからstop_flagを書き換えることで,外部から処理を停止できる.
-
-
- 実装上のお約束
- ファイルに書き出しても良いけれど,[target folder name]フォルダ内に書き出すこと.
-
stopメソッドを実装し,このメソッドが呼び出されたら必ず処理を停止させること.