私はプロジェクトで機能テストにBDD(Behat)を使用しています。 バックグラウンドジョブが多すぎる機能をテストするときに問題が発生しました。例:、バックグラウンドジョブが多すぎるBDDテスト?
- サーバ1は、アップロードされたファイルを受信した「輸入」するために、データベースとマークの状態にいくつかのメタデータを挿入します。
Scenario: Import issue at the first time Given I have a issue package "1602.zip" When I upload issue "1602.zip" Then I have to wait until it is finished And I can see list of articles are imported And status of issue is "1"
含む「その後、私は終了するまで待たなければなりません」次にs3にzipファイルをアップロードする
- s3からサーバー2のダウンロードファイルをダウンロードし、PDF、画像などの素材を処理した後、処理してs3に再度アップロードします。
- S3からサーバ3のダウンロード(サーバ2で行われる)結果のzipパッケージを、そして問題のインポートを開始(輸入PDF、画像、記事を...)
「そして私はのリストを見ることができます記事がインポートされる "私はその問題の記事のリストを取得するためにサーバーへのAPIを呼び出しますか?
だから、あなたが見ることができるように、インポート時に、我々は(Resqueを使用して)あまりにも多くのバックグラウンドジョブを持っているので、私はそれは問題の状況をチェックして終了するまで待機する必要があるため:
while ($status != 1) {
$status = getStatusOfIssue(123);
if (1 === $status) {
break;
}
}
問題があります私はどれくらい待たなければならないのか分からない。なぜなら、問題パッケージのサイズに依存しているから、サイズが大きいほど待ち時間が長くなるからだ。このような状況で、私は何をすべきですか?
「完了するまで待つ必要があります」には何が含まれていますか? "記事のリストがインポートされているのを確認できます"というチェックは何ですか? – lauda