многопоточность — многопоточные задания, работающие с Google Cloud API

Я создал Saas, который собирает заказы с разных сайтов для компаний,
веб-сайты являются своего рода «издателями», которые ежедневно предоставляют заказы компании.

У меня нет API, поэтому я удаляю HTML с этих сайтов, используя имя пользователя и пароль, предоставленные мне компанией.

После импорта и сохранения заказов в моей базе данных я отправляю их на принтер компании с помощью API облачной печати Google, а компания работает над заказом в режиме реального времени.

После того, как заказ был отправлен на печать, я отправляю запрос на публикацию на веб-сайте, который, в основном, нажимает кнопку с надписью «Я получил заказ, и я над ним работаю», что-то вроде принятия / утверждения заказа.

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

Пока все хорошо, но у меня большая проблема.

иногда облачная печать Google не распознает принтер, и компании приходится перезагружать компьютер, подключенный к принтеру, проблема в том, что мой пользовательский интерфейс показывает пользователю, что заказ уже распечатан, а также утверждает заказ на исходном веб-сайте. поэтому клиенты получили подтверждение, что компания работает над заказом прямо сейчас.

Google Cloud Print API предоставляет мне возможность проверить состояние печати, но это занимает около 6 секунд, и, возможно, статус «в процессе», поэтому мне потребуется более 6 секунд для 1 заказа, чтобы получить статус, который я желаю — «сделанный».

сейчас у меня есть задания на 2 кроны, которые запускаются каждую минуту,
первый импортирует новые заказы, а второй отправляет новые заказы на печать.
когда я отправляю заказ на печать, это занимает около 4 секунд, поэтому я могу отправлять только до 15 заказов в минуту, как я уже говорил, компании работают в режиме реального времени, поэтому у меня не может быть никаких задержек с момента появления заказа в один из сайтов на тот момент, когда выходит принтер

Я хотел бы, чтобы я работал так:

шаг 1:
импортировать заказ

шаг 2:
отправить его на принтер

шаг 3:
проверить статус

шаг 4:
утвердить заказ на сайте после того, как я получил статус «выполнено».

Я думаю, что моя самая большая проблема заключается в том, что он не работает с многопоточностью

Я ищу лучший способ управления и работы с многопоточными заданиями в PHP.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]