2016-09-27 8 views
0

Я использую Symfony framework3 с пакетом Pheanstalk и доктриной. Я создаю событие, которое отправляет данные в beanstalk. Другое приложение SF на другом сервере выполняет статус задания и обновления для первого приложения SF для завершения. Как я могу проверить, когда статус обновляется и чем установленная тревога так:Сделать ответ на уведомления, когда работа будет завершена.

http://byrobin.nl/store/wp-content/uploads/sites/4/2016/03/local.png

я могу создать команду, которая есть инфинитив цикл и проверка обновлений статуса, может быть слушателем на preUpdate? Также у меня такая же проблема с запущенной командой, которая проверяет и выполняет задания beanstalk. В режиме dev я запускаю его вручную, но я пробую инфинитивный цикл, как while (true), но он загружает мой буфер и сбой. Я думал о работе cron, которая проходит каждую минуту или две? Какое лучшее решение для этих двух проблем? Любой совет?

ответ

0

1) Было бы хорошо с WebSockets, поскольку это не включает цикл while (true). Интерфейс может быть открыт интерфейсом после того, как задача была отправлена ​​для обработки. После завершения обработки задания он уведомит серверную часть веб-узла о передаче информации обратно в сокет для интерфейса.

2) Еще один вариант - отправить сообщение, а в параметрах назвать анонимную трубку (создать уникальное имя на основе времени и некоторого префикса), где работник должен поставить ответ. И перед отправкой задания вы подписываетесь на beanstalkd на анонимный канал, затем отправляете задание, и работа заканчивается, и он отправит ответ на трубку. Поскольку там уже есть абонент, он резервирует работу и обрабатывает ее, а затем удаляет ее, и трубка также удаляется.