У меня есть сценарий R, который считывает данные из БД и записывает их в электронную таблицу Google (сценарий читает несколько таблиц, каждая из которых записана на отдельный лист электронной таблицы). Он работает нормально, но проблема, с которой я столкнулся, заключается в том, что, поскольку некоторые таблицы довольно большие, функция googlesheets4 :: write_range случайным образом выдает ошибку тайм-аута, потому что лист все еще занят обработкой ранее написанных таблиц. Я попытался написать код, чтобы отловить ошибку, а также использовать функцию повтора (из повторной попытки пакета), но, похоже, она не работает, я просто не могу найти подходящий способ отловить ошибку, которую выдает функция range_write при отсчете времени из. То, что мне нужно, должно выглядеть примерно так (я думаю):
retry::retry(
range_write(my_sheet,
my_data,
sheet = sheet,
range = "A1",
col_names = TRUE),
when = "some error",
max_tries = 3,
interval = 10)
Как уже упоминалось, предыдущий код работает, но не может обнаружить ошибку, которую выдает range_write при истечении времени ожидания, он по-прежнему дает следующее: Ошибка: ошибка сервера: (503) НЕДОСТУПЕН.
Если через несколько секунд я снова попытаюсь выполнить функцию для таблицы, в которой произошел сбой, обычно она работает, поэтому я знаю, что это всего лишь вопрос повторной попытки (если обязательно, 2 или 3 раза), давая несколько секунд листу для обработки информации. .
Любая помощь или советы по выполнению этой работы будут безмерно признательны!