Perl: как дождаться окончания скручивания до конечной sh, прежде чем перейти к следующему - PullRequest
0 голосов
/ 12 марта 2020

Как perl ожидает шаг перед обработкой следующего шага?

например,

У меня есть команда (проверка состояния шага загрузки предыдущих данных):

curl -H "Content-Type: application/json" -H "Authorization: Bearer DS_12345" -X GET https://api.xxx

Ответ:

{
  "method":"a",
  "users":["user@xxx.com "],
  "status":"DONE",
  "export-url":"https://api.xxx/v1/export/DP_6789xxx"
}

Статус может быть: «ГОТОВО», «НЕИСПРАВНОСТЬ» или «ОБРАБОТКА». Когда статус «ОБРАБОТКА», я не хочу выходить из программы и запускать ее снова. Вместо этого я хочу подождать, пока статус не будет «ВЫПОЛНЕНО», а затем go для следующего шага, взяв ответ «export-url»: «https://api.xxx/v1/export/DP_6789xxx» из предыдущего шага. (когда это "FAIL", сообщите и выйдите)

curl -H "Content-Type: application/json" -H "Authorization: Bearer DS_12345" -X GET https://api.xxx/v1/export/DP_6789xxx?view=xml

Спасибо за ваш ответ.

1 Ответ

3 голосов
/ 12 марта 2020

Используйте некоторое время l oop:

my $result = 'PROCESSING';
while ($result eq 'PROCESSING') {
    my $response = ... # 
    $result = $response->{status};
    sleep 5;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...