Альтернативы использованию Apps Script из-за максимального времени выполнения в 30 минут

Вопрос или проблема

Привет, я делаю задачу, которая занимает около 10 часов.

Задача: Вызвать API 100,000 раз для 100,000 входных данных и сохранить результаты в таблице Google.

Поскольку скрипты приложений имеют ограничение по времени в 30 минут, мне нужно делать это в нескольких партиях. Я не хочу делать это партиями, так как это требует ручного вмешательства между ними. Также я рассмотрел варианты создания триггеров и не нашел их удобными.

Есть ли другие простые/удобные/эффективные альтернативы AppsScript, которые не имеют такого короткого ограничения по времени?

У меня есть доступ к GCP, и я буду рад альтернативам, связанным с ним.

  1. Вместо использования Google Таблиц используйте серьезную базу данных.
  2. Вместо использования 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 может существенно повысить удобство работы с данными.

Надеюсь, эти рекомендации помогут вам успешно решить вашу задачу. Если у вас возникнут дополнительные вопросы или понадобится помощь, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...