私が達成しようとしている最終結果は、サーバーが接続時にクライアントに特定のタスクを割り当てることができるようにすることです。簡易版はこんな感じ
- クライアントがサーバーに接続
- サーバーはクライアントにいくつかのネットワークタスクを実行するように指示します
- クライアントはタスクを受け取り、別のプロセスを起動してタスクを完了します
- クライアントはサーバーに起動したことを通知します
- サーバーはクライアントに、別のタスクがあることを伝えます(など...)
いくつかのメモ
- クライアントが実行できるタスクの数には上限があります
- クライアントは、タスク/プロセスを監視できる必要があります (実行中?停止中?)。
- 必要に応じて、クライアントがプロセスからデータを受信してサーバーに送信できると便利です
最初はスレッド化しようと思っていたのですが、python は正しくスレッド化しないと聞きました (それは正しいですか?)
その後、python からシステムコールを発火させて PID を記録すると考えられていました。次に、ステータス、停止、(SIGUSR1、SIGUSR2、SIGINT) のために特定のシグナルを送信します。しかし、別のプロセスからデータをキャプチャできるかどうかわからないため、それが機能するかどうかはわかりません。できれば、それがどのように達成されるかわかりません。(標準出力またはソケットファイル?)
これを処理する最善の方法として、皆さんは何を提案しますか?