Функция пользовательских скриптов приложений не выполняется в определенных строках в Google Sheet - PullRequest
0 голосов
/ 02 апреля 2020

Я написал некоторый код Apps Script для извлечения биржевых данных из Yahoo и Fizviz, и какое-то время он работал нормально.

С тех пор, как я достиг определенного числа строк в моей таблице (около 20 тикеров) некоторые определенные строки c перестают выполняться, ячейки говорят «Загрузка» навсегда. Функции сценария приложений строки не отображаются в журналах стековых драйверов. Если я сортирую таблицу, чтобы вызвать refre sh, эти тикеры затем выполняются, но некоторые другие определенные строки c перестают выполняться, поэтому проблема не должна быть тикером. Кроме того, странным является то, что число неиспользуемых строк отличается для разных порядков сортировки, иногда я мог найти порядок сортировки, который выполняет большинство строк. Если я удаляю все строки, кроме одной, которая не выполняется, она остается не выполненной.

Loading forever

Я попытался сформулировать различные объяснения, и на данный момент это мне кажется, что все случайные черные маги c

У кого-нибудь есть такой же опыт, как и у меня?

Код здесь, если кому-то интересно, основные точки входа работают непосредственно используемый лист находится в FinanceData.gs: https://github.com/hoangbv15/FinanceAppsScripts

Редактировать: Ребята, большое спасибо за предложения формул массива. Я пытался использовать его, но он не может справиться с моей таблицей фильтров, когда я изменяю фильтрацию / сортировку. Возможно, я не правильно его использую?

1 Ответ

1 голос
/ 02 апреля 2020

Я пытался воспроизвести вашу ошибку, но на данный момент она работает нормально, только немного медленно. Это может быть проблема с квотой, и я еще не столкнулся с ней. Чтобы избежать превышения квоты, я предлагаю вам заключить вызовы пользовательских функций в =ARRAYFORMULA(). Таким образом, ваши n вызовы функций будут объединены в один.

Я не думаю, что логика вашего приложения c подходит для хорошей работы со скриптом Google Apps. Вам придется изменить его, чтобы уменьшить время отклика, в противном случае вы получите тайм-аут при вызове пользовательской функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...