@lionheartblue The worker will have to execute on the queued jobs, so ideally, they should be on the same server. Think about it, even if you broke queueing out to a separate server, what difference would it make if the worker had to pull those tasks in anyway? It would just add a layer of complexity and processing that is unnecessary.
Laravel Redis Queues Across Servers
I have an old Laravel 5.4 application that is very very intensive. I have moved this to AWS as our hardware was failing.
What I am trying to do is separate the application's functions, into their own servers.
So I have the main website on one. The DB & Workers on another. And Redis Queues on a third.
What I am failing to get right, and it seemed so simple, was to get the Main website to push jobs to the Queue, and the workers server to process the jobs.
Is this possible? Or should the workers and queue be in the same server/application?
@fylzero Yes I know, usually I do too, but I have inherited this application to maintain and it is so far behind, and using dependencies that won't work in newer versions. We are currently re-developing the main application but until then I have to get this stable.
So, I downgraded my Queue application to Laravel 5.4 and my new test application to 5.4. This then proved to me that 5.4 is part of my problem, as my new test app could no longer Queue jobs to this Redis server.
So, I upgraded them both, and my main application all to 5.5, which is the first version that supports Horizon.
My test application can queue jobs. Horizon shows the jobs, and the tinker app shows a return value of "5" which increments by 1 on each new Queue call.
But my main application still does NOT queue on this Redis Server. And the tinker app returns a unique string as mentioned before. This seems really odd to me.
Edit: Therefore my ONLY solution was to switch to Beanstalkd for the Queues. And dispose of Horizon.
Please or to participate in this conversation.