Я пытаюсь поставить в очередь работника Sidekiq, которого нет в моем проекте, но существует в каком-то другом проекте, использующем тот же сервер redis.
В нашей текущей ситуации у нас есть два сервера:
Сервер API работает на Heroku. Веб-экземпляр для REST API и работник с Sidekiq прослушивает очередь :api
.
Сервер обработки работает на AWS ElasticBeanstalk с экземпляром puma, выполняющим REST Full API с Sinatra. Этот экземпляр запускает Sidekiq и слушает очередь :processing
Дополнительное примечание : В начале наш API выполнял всю работу, но, поскольку некоторые работники начали использовать слишком много памяти, мы переключаемся на сервер обработки.
Когда нам нужно выполнить задание на сервере обработки, у нас происходят следующие действия:
API-вызовы POST processing.com/some_job
Обработка очередей SomeJobWorker
в очереди processing
Обработка выполняется SomeJobWorker
из очереди processing
Обработка вызовов POST api.com/webhooks/some_job_result
API-очереди SomeJobResultWorker
в очереди api
API выполняет SomeJobResultWorker
из очереди processing
Это заставило меня задуматься, если бы я мог как-то с сервера API напрямую поставить в очередь SomeJobWorker
, тогда я мог бы избавиться от API REST на нашем сервере обработки .
... тогда я мог бы избавиться от конечной точки webhooks
на сервере API и сделать то же самое с сервера обработки
Я бы закончил что-то вроде этого:
очереди вызовов API SomeJobWorker
Обработка выполняется SomeJobWorker
Обработка очередей SomeJobResultWorker
API выполняет SomeJobResultWorker
Есть ли способ поставить в очередь работника, которого нет в моей локальной кодовой базе?