2012-01-24 3 views
3

データの取得に使用される既存のPythonクラスがあります。これにはstart()メソッドとstop()メソッドがあり、データの取得を開始および停止します。今のところ、このクラスは、例えば、単一のPythonスクリプトで使用されます。コマンドラインコール(shelveなし)でPythonクラスインスタンスを永続化しますか?

dataGrabber = DataGrabber() 
dataGrabber.start() 
# do a bunch of stuff... 
dataGrabber.stop() 

我々はスタートを抜け出すと機能を停止して、例えば、コマンドラインからのデータの取り込みを開始および停止することができるようにしたい:

python CaptureData.py start 
<<< go off and do something else >>> 
python CaptureData.py stop 

"start"引数を指定してスクリプトを呼び出すと、DataGrabberクラスのインスタンスを作成し、そのクラスインスタンスを何らかの形で保存し、スクリプトを呼び出すときにアクセス可能にする方法が必要です"stop"引数。

私はshelveを使ってみましたが、DataGrabberクラスにはたくさんのインスタンスメソッドがあり、Pythonではインスタンスメソッドをピクルできません。

アイデア?私はこれを行うことができる方法はありますか?

+0

実行はコマンドラインの呼び出しの間に継続されますか? –

+0

はい。 start()メソッドはデータの取得を開始します。組み込みシステムと会話してデータを収集します。これは、コマンドラインから外部に停止するまで実行する必要があります。 – user1167666

+0

とにかく棚を使用する:) http://stackoverflow.com/a/1798869/16361 – AdamKG

答えて

3

デーモンを作成したいと思うようです。お使いのOSによっては、これを行うにはpython-daemonを使用できるはずです。

編集:あなたはWindowsを使用していると言いますから、代わりにスクリプトをサービスとして実行できますか?

This questionとそれに対応する回答は非常に関連性が高いようです。答えはそれを見た目にも簡単にする!

関連する問題