Bitrix24, коробка. Пишу модуль для сбора информации у клиентов что бы потом отправлять на обработку на сторонний сервис.
Проблема:
Объем данных, около 40 млн записей.
Я пытаюсь это отправить на сторонний сервис в виде json. Путем экспериментов стало понятно что легче всего отправлять файлы частями по 8мб (сторонний сервис позволяет так делать).
Но сталкиваюсь с ограничением времени исполнения скрипта.
Пока пришла в голову идея:
Написать скрипт, поставить его на агент(крон битрикса) и в этом скрипте:
-забирать часть файлов
-записывать последний id из этого куска файлов в таблицу
-отправлять
и так по кругу пока все не отправится.
Вопрос:
Есть ли у кого идеи как это сделать проще и быстрее?
P.s. set_time_limit нельзя трогать т.к. этот код будет исполняться у клиента + все скрипты запускаются агентами битрикс
Есть пара вариантов как это сделать:
- Stepper (вид агентов, о котором вы писали)
- cron-файл.
Нет ничего зазорного чтобы специализированную задачу, для решения которой подходит cron-файл/cron-скрипт выполнять именно таким способом.
Более того:
- В коробке может быть настроено выполнение агентов на кроне, что решает часть вашей проблемы
- Битрикс в определенных подсистемах (например открытые линии) сам рекомендует дополнительно настраивать cron-задания