Какой самый эффективный способ запуска асинхронных функций в PHP?

Я работаю над приложением, которое использует API Amazon MWS, написанное в основном на PHP. Это приложение позволяет продавцам Amazon зарегистрироваться, предоставить некоторые учетные данные продавца Amazon, после чего приложение начинает загружать заказы этого пользователя с Amazon, помещая их в базу данных MySQL.

Я создал методы для точной синхронизации данных с базой данных с помощью сценария с несколькими функциями, но заметил, что это занимает слишком много времени. Этот сценарий просто перебирает всех пользователей в базе данных и выполняет итерацию всех заказов по одному. Сейчас, когда у нас всего 5 тестовых пользователей, время вполне выполнимо, но я ищу более расширяемый метод. Представьте, что все 500 пользователей работают синхронно по одному. ПУТЬ слишком долго!

Я новичок в PHP и особенно в том, чтобы запускать из него асинхронные процессы. Единственный способ, которым я могу это сделать, - это иметь стартовый сценарий, который находит всех пользователей в базе данных и порождает сценарий синхронизации для каждого пользователя, а затем выпускает его. Мне не нравится эта идея, потому что если бы у меня было 500+ пользователей, моя ночная синхронизация состояла бы из 500 порожденных экземпляров этого PHP-скрипта.

Кто-нибудь делал что-то подобное раньше? Если да, то я хотел бы услышать, как лучше всего сделать эту синхронизацию более эффективной.

5
задан Adam Bertram 17 October 2011 в 13:38
поделиться