9

django-oscar アプリケーションと共にApache Solrがインストールされていることを確認する必要があり、.ebextensions 構成ファイルでこれらの手順を使用して、Solr を自動的にインストールし、インデックスを再構築しています。

ここに .ebextensions/03_solr.config があります

container_commands:
  01_install_solr:
    command: "wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz &&
    tar xzf solr-4.7.2.tgz &&
    cd solr-4.7.2.example/solr/collection1 && 
    mv conf conf.original && 
    ln -s /opt/python/current/app/deploy/solr conf &&
    cd ../.. && 
    java -jar start.jar"
  02_rebuild_index:
    command: "python manage.py rebuild_index --noinput"

solrを自動的にインストールするには、ここで何を追加/更新する必要がありますか

eb deploy

?

更新: bash を 1 つのコマンドに変更しました。プロセスは完了しているように見えますが、java -jar start.jar を.ebextensions/03_solr.config実行すると、タスクは

org.eclipse.jetty.server.AbstractConnector - Started SocketConnector@0.0.0.0:8983

このプロセスは、実際にはバックグラウンド プロセスである必要があります。現在、デプロイがハングし、新しいアプリケーションをデプロイせずにタイムアウトになっているためです。この SO 投稿によると、新しいアプリケーション バージョンがデプロイされた後に遅延ジョブを開始するには、いくつかの作業が必要です。助言がありますか?明確にするために:

実行します

java -jar start.jar

コマンドを EB のノンブロッキング バックグラウンド プロセスとして使用しますか?

4

2 に答える 2

2

これらの各ステップはデフォルトのフォルダーで実行されるため、cdコマンドを発行しても効果がないことに注意してください。複数のコマンドではなく、1 つのコマンドでこれらすべての手順を実行する必要があります。
ステップ 04 は、solr ディレクトリではなくデフォルト ディレクトリで開始されるため失敗します。

于 2015-12-07T06:34:55.620 に答える