Я выполняю некоторые длительные запросы, используя Java-клиент с большим запросом.
Я создаю задание с большим запросом и выполняю его следующим образом.
val queryRequest = new QueryRequest().setQuery(query)
val queryJob = client.jobs().query(ProjectId, queryRequest)
queryJob.execute()
Проблема, с которой я сталкиваюсь, заключается в том, что для того же запроса клиент возвращается до завершения задания, т.е. количество строк в результате равно нулю.
Я попытался распечатать ответ, и он показывает
{"jobComplete":false,"jobReference":{"jobId":"job_bTLRGrw5_xR26i9Li3a9EQvuA6c","projectId":"analytics-production"},"kind":"bigquery#queryResponse"}
Из этого я вижу, что работа не завершена. Почему клиент вернулся до завершения задания?
При сборке клиента я использую HttpRequestInitializer
и в методе инициализации задаю параметры времени ожидания.
override def initialize(request: HttpRequest): Unit = {
request.setConnectTimeout(...)
request.setReadTimeout(...)
}
Пробовал задавать высокие значения тайм-аута, например, 240 секунд и т. д., но безуспешно. Поведение остается прежним. Периодически выходит из строя.