2016-10-04 30 views
0

CentOS VPSサーバpythonプログラムを実行します。私はこの数ヶ月間このプログラムを実行しています&私はこの問題に最初から直面しています。Pythonマルチプロセッシングが途中で終了する

私は通常、このpythonプログラムをcrontabから実行します。プログラムは毎日次のことを毎日行います。

  1. MySQLに接続&いくつかの特定の情報を更新します。
  2. multiprocessingを使用して8-10個のpythonインスタンスに分割します。
  3. 各インスタンスは、Xvfb(これはFirefoxの実行に必要)を使用して仮想ディスプレイを実行します。
  4. 各インスタンスは個別のFirefoxブラウザを実行します。
  5. すべてのインスタンスが1つのWebサイトを訪問して一部のデータに対して更新を確認し(seleniumを使用)、変更があった場合はデータベースに更新されます。それが適切に実行されている場合
  6. firefox

近い各インスタンスをチェックした後のすべてのこれらのプロセスは通常、60分〜90分を取ります。しかし、問題はそれが毎回うまく動作していないということです。時には途中で死ぬこともあります。また、私は特定の理由、なぜこれらのプログラムが死んでいるのか、私は何をすべきか分かりませんでした。 topまたはpsをチェックしたところ、プログラムが見つからず、firefox & Xvfbがまだ愚かなようなpythonコマンドを待っています。

おそらく過負荷やその他の理由でシステムによって殺されました。システムをリブートすると時々役立ちます。しかし、私はそれが良い解決策ではないことを知っています。だからこそ私はプログラムを実行して、最低レベルのニーネス値を減らそうとしました。しかし、プログラムはおそらく負のnicenessの値で実行できないため、同じ問題が残っています。

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY   TIME CMD 
0 S 500 12673 12655 0 80 0 - 54957 wait ?  00:00:00 python 
1 S 500 12683 12673 0 80 0 - 62766 sk_wai ?  00:00:18 python 
1 S 500 12704 12673 0 80 0 - 59295 sk_wai ?  00:00:17 python 
1 S 500 12816 12673 0 80 0 - 59230 sk_wai ?  00:00:16 python 
1 S 500 12898 12673 0 80 0 - 59400 sk_wai ?  00:00:16 python 
1 S 500 12988 12673 0 80 0 - 59491 sk_wai ?  00:00:17 python 
1 S 500 13072 12673 0 80 0 - 59151 sk_wai ?  00:00:17 python 

繰り返しますが、私は私ののWindows 8デスクトップ上にこのプログラムを実行しているし、それが最大26個のインスタンスを持つ細かい動作します(私はもっと:)試したことがありません)。一度に多くのインスタンスを実行しているため、ページの読み込みが遅くなります。それで、私は3つのVPSサーバー上でこのプログラムを実行しようとしました。

はまた、私は、1つのプロセスでpythonfirefoxseleniumXvfbを使用して別のプログラムを実行し、それが任意のしゃっくりせずに罰金10〜12時間を実行します。また、このプログラムは最初のものとほぼ同じことをしますが、違いはただ1つのプロセスしか実行していないことです。そして、それは最初のようなトラブルを起こすことはありません。

毎回正しくプログラムが実行されることを確認する方法はありますか?

答えて

0

私も同じ問題に直面しています。私が結論づけた多くの研究をした後、Firefoxはマルチプロセッシングのための良い選択肢ではありません。 PhantomJSまたはChromeのドライバ。私の場合、私がpsまたはtopを見たとき、私はZombie Firefoxプロセスを取得していました。

関連する問題