Curl mutli threading: Как остановить время ожидания для детей, когда у каждого ребенка есть большой пакет данных? - PullRequest
0 голосов
/ 22 апреля 2020

у нас есть 60 000 клиентов, нам нужно продлить подписку, для этого мы используем сценарий обновления, который использует curl_multi_exe c, чтобы создать дочерних элементов для вызова другого сценария, который выполняет транзакции, и вставляет is_paid=1 в базу данных.

Сценарий выполняется с использованием задания cron на PHP 5.3 и Apache, сервер centos 6. Сценарий всегда занимает от 30 до 50 минут до окончания sh. Приведенный ниже сценарий создает дочерние элементы, которые запускают другой сценарий, который вызывает API с использованием curl, а API вызывает платежный шлюз с помощью curl и обновляет базу данных.

Если $number_of_items = 400; Что-то подобное, все запросы curl будут готово, но процессор будет настолько высок, что MySQL перестанет вставлять записи в базу данных. Таким образом, вы платите, но is_paid=0, MySQL не будут обновлять его, поэтому около 2% пользователей не будут иметь доступа к контенту, за который они заплатили

Если number_of_items=6000, это означает меньше скручивание потоков и большее количество элементов в потоке, процессор великолепен, никаких проблем, но не у всех людей возобновляется подписка. если у нас 60 тыс. клиентов, успешно создано 10 локонов, но, возможно, 1 конечная sh половина его работы, в итоге мы обновим 8 тыс. клиентов или что-то в этом роде, поэтому они даже не вызывают API оплаты

* 1012. *

Я хочу сохранить сравнительно большой пакет данных, чтобы процессор не был сумасшедшим, и хочу, чтобы у каждого ребенка не было тайм-аута.

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