@ermolaev_nikita

Как лучше организовать обработчик задач для контроллера?

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

Как я вижу решение данной проблемы:
При запуске приложение, оно отправляет методом GET на сайт свой PID, после чего web-приложение может отправлять сигналы конкретному адресату и например отправить сигнал о том, что PID успешно получен. Когда появляется задача для контроллера, web-приложение парсит инструкции для работы в JSON и отправляет их в общий буфер (ну или на край в качестве теста в файл), а затем отправляет на известный PID сигнал о том, что для контроллера появилась задача. После чего Приложение извлекает инструкции и создает дочерний процесс с параметрами, взятыми из декодированного JSON объекта. Дочерний процесс при создании так же отправит сообщение методом GET на сайт о том, что у меня такой-то PID, я выполняю работы с таким-то ID, а мой log файл имеет такое-то имя. После чего мы можем так же через Web-приложение отправлять сигналы на дочерний процесс и всячески отслеживать его работу читая логи.
Вот только надо защитить канал, но я не думаю что это проблема, это скорей формальность.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
@Fortop
Tech/Team lead
Стандартные варианты решений вроде
Gearman, ActiveMQ, RabbitMQ уже не подходят?

Там уже есть схема которую вы описываете, со всеми техническими нюансами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы