Я пытаюсь использовать RabbitMQ в PHP для запуска около 40 сценариев подряд. То, что у меня пока есть, это своего рода работа, но не совсем так, как я хочу.
Один PHP сценарий (который в конечном итоге планируется запустить ночью) отправляет серию сообщений в очередь , как показано ниже:
php public_html/worker/mis-update-school.php 9195408 1
php public_html/worker/mis-update-school.php 8954001 1
php public_html/worker/mis-update-school.php 3424051 1
Затем они получаются потребителем и выполняются следующим образом:
public function action($msg)
{
$message = $msg->body ;
shell_exec($message);
}
Это работает, так как ожидает выполнения каждого сценария до следующий начинается. Однако, похоже, что это делает PHP, а не RabbitMQ. Кажется, что все сообщения Rabbit MQ потребляются в одно и то же время.
Как я могу сказать RabbitMQ дождаться завершения shell_exec()
до обработки следующего сообщения?
Причина этого важно то, что в периоды занятости я хотел бы иметь возможность добавлять больше dyno в очередь для запуска более чем одного из сценариев одновременно. В настоящее время это невозможно, поскольку все сценарии немедленно извлекаются из очереди.
Есть идеи?