2016-07-22 16 views
1

私はCloudFoundryアプリケーションとしてIBM Bluemix上でバックグラウンドプロセスとして実行するための非常に単純なPythonプログラムを取得しようとしています。Bluemixでバックグラウンドプロセスを実行するには?

私はGithub repoに入れました。 1行のreqファイルがあります。これはsetup.pyよりも簡単で、Pythonビルドパックで実行する必要があるためです。

Djangoで書かれたAPIがあり、ブローカからデータを収集するためにMQTTクライアントが必要です(Watson IOTと思っています)。

私はProcfileはこのように見て2ラインと同じCFアプリの両方を実行しようとしました:

web: gunicorn -e DJANGO_SETTINGS_MODULE=conf.dev conf.wsgi --workers 2 
worker: python time.py 

が、第二の方法はただ無視されました。

私も現在の設定で試しましたが、2行目のみを含むProcfileがあり、開始コマンドが見つからないことがわかりました。だから

2016-07-22T13:10:36.671+0200 
[LGR/null] 
err 
WebsocketListener.Start: Error connecting to a doppler server 
2016-07-22T13:10:36.677+0200 
[LGR/null] 
err 
proxy: error connecting to 159.8.128.238:8081: dial tcp 159.8.128.238:8081: getsockopt: connection refused 

は今、trueでマニフェストとno-routeでstartコマンドで、どちらかそれはヘルスチェックに合格しない、または私はこのエラーを取得するまで、それは始まったばかりの段階で待ちます可能な場合は、Bluemixでバックグラウンドタスクを実行する方法はありますか?

編集:私はアプリのクラッシュが、質問へのちょうど約毎分

Removing crash for app with id 3978a475-4dc6-495f-9662-a6fd562dc28a 

答えて

1

短い答えを私のPythonスクリプト内の文字列をフォーマットするタイプミス以外には何も変わっていないのに、今では、動作します: no-route引数がtrue

に設定されている別のアプリだから、私は完全に動作するようになっているようです。

私は何をしているのか分かりませんが、問題は32Mのインスタンスを要求していて、最低64Mと思われるので、Bluemix/CFは私の要求にとても満足していませんでしたクラッシュしました。

私は私の古い試みで128Mを使用していたが、私は私は2つの別々のWeb用のアプリケーションや作業員のインスタンスを実行するためのアプローチを使用し、時間

+0

これは正しい方法です。ルートのない別のアプリです。 – opiethehokie

+0

@opiethehokieまさに私が言おうとしていたこと –

0

no-route: trueを入れていなかったと思います。しかし、私はまだ失敗していたヘルスチェックを乗り越えていました。

従業員のために、ルーティングと無効を無効にしてヘルスチェックを無効にすることをおすすめします。

次のマニフェストは、Web用のgunicornとワーカー用のセロリを使用してDjangoを実行するために働いていました。

マイmanifest.yml

--- 
applications: 
    - name: myapp 
    host: myapp 
    domain: eu-de.mybluemix.net 
    memory: 128M 
    command: bash ./run_web.sh 

    - name: myapp-workers 
    memory: 128M 
    no-route: true 
    health-check-type: none 
    command: bash ./run_worker.sh 

run_web.shrun_worker.shシェルスクリプトは、コンポーネントを実行するコマンドが含まれており、ウェブ例えば、私は実行スクリプトに移行し、collecstaticコマンドを追加しました。

関連する問題