Вопрос или проблема
Привет, я делаю задачу, которая занимает около 10 часов.
Задача: Вызвать API 100,000 раз для 100,000 входных данных и сохранить результаты в таблице Google.
Поскольку скрипты приложений имеют ограничение по времени в 30 минут, мне нужно делать это в нескольких партиях. Я не хочу делать это партиями, так как это требует ручного вмешательства между ними. Также я рассмотрел варианты создания триггеров и не нашел их удобными.
Есть ли другие простые/удобные/эффективные альтернативы AppsScript, которые не имеют такого короткого ограничения по времени?
У меня есть доступ к GCP, и я буду рад альтернативам, связанным с ним.
- Вместо использования Google Таблиц используйте серьезную базу данных.
- Вместо использования AppsScript напишите скрипт на Python, который будет запрашивать этот API.
Ответ или решение
Для вашей задачи, заключающейся в вызове API 100,000 раз и записи результатов в Google таблицы, действительно стоит рассмотреть альтернативы Google Apps Script, особенно учитывая лимит времени в 30 минут. Вот несколько подходов, которые могут значительно упростить ваш процесс и позволить вам избежать ручного вмешательства.
1. Использование Google Cloud Platform (GCP)
a. Cloud Functions:
Вы можете использовать Google Cloud Functions для запуска кода, который будет вызывать API и обрабатывать результаты. Вы можете разбить задачу на небольшие функции, которые будут вызываться по триггерам или с использованием Cloud Pub/Sub.
b. Cloud Run:
Cloud Run позволяет запускать контейнеризированные приложения в облаке. Вы можете разработать ваше приложение (например, на Python), которое будет обрабатывать запросы к API в цикле и записывать результаты в Google Sheets через Google Sheets API. Так как Cloud Run не имеет ограничений по времени выполнения, вы сможете обрабатывать задания продолжительное время.
c. Google Cloud Dataflow:
Если ваша задача требует параллельной обработки, Dataflow позволяет распределить нагрузку по множеству рабочих узлов. Вы можете создать поток данных для выполнения параллельных вызовов к API.
2. Использование более подходящей базы данных
a. Замена Google Sheets на базу данных:
Вместо использования Google Sheets для хранения результатов, рассмотрите возможность использования более удобной базы данных, например, Google Cloud Firestore или Google Cloud BigQuery. Это упростит структуру данных и упростит последующий анализ и доступ к результатам.
3. Написание скрипта на Python
a. Разработка Python-скрипта:
Напишите Python-скрипт, который будет использовать библиотеки requests
для вызова API и pandas
для обработки и хранения данных. Вы можете настроить его так, чтобы он запускался в фоновом режиме, например, используя cron
или другую систему планирования задач, чтобы избежать вручную.
b. Запуск на виртуальной машине (VM):
Вы можете разместить свой Python-скрипт на виртуальной машине в Google Compute Engine. Это позволит вам запускать его на время, которое вам необходимо, без ограничения по времени.
Заключение
Все вышеперечисленные решения позволят вам эффективно выполнять вашу задачу в автоматическом режиме без необходимости вручную управлять процессом. Использование GCP, особенно Cloud Functions или Cloud Run, дает вам гибкость и масштабирование, необходимое для выполнения больших объемов работ. Также, переход на базу данных вместо Google Sheets может существенно повысить удобство работы с данными.
Надеюсь, эти рекомендации помогут вам успешно решить вашу задачу. Если у вас возникнут дополнительные вопросы или понадобится помощь, не стесняйтесь обращаться.