我會通過承認輕微的睡眠剝奪來做到這一點。Laravel Queue Worker,RabbitMQ和正在運行的作業遠程生成
的設置如下:
API端點(服務器A)接收呼入,並將此與RabbitMQ的服務器(服務器B)上的特定隊列中。
RabbitMQ(服務器B)只是一個RabbitMQ隊列服務器。沒有更多,沒有更多。
Laravel安裝(服務器C)是我們的實際Laravel安裝,它是爲了在特定隊列中尋找作業並與他們一起做事。
我們在Laravel安裝中有一個RabbitMQ包,它允許在RabbitMQ連接上使用常規的Laravel隊列機制。
我遇到的問題是我們可以產生一個隊列的工作人員 - 但由於我們沒有生成傳遞$job
類的作業(作業內容本身通常是JSON數組),因此Laravel安裝不知道如何處理這項工作。
所以我的問題主要圍繞如何處理這種情況。我在考慮在Laravel中使用隊列功能不會做我需要的功能。你能看到我失蹤的方法嗎?我真的需要在非框架腳本上產生一個守護進程來處理這個問題嗎?
您的建議非常感謝!
難道你沒有辦法查看json數組,並理解工作是什麼,或者可以在laravel中準備做什麼? –
@FarrukhSubhani問題在於Laravel中的隊列工作者基於指定的$ job(腳本)運行作業,這與我需要此功能的方式相反,因爲$ job無法從服務器獲得首先創造工作。 – CmdrSharp
進一步思考這個問題,也許最好的選擇是讓服務器A也運行一個更簡單的Laravel安裝和一份相同的工作。然後它可以發送該作業,並且由於運行它的服務器上存在相同的副本,它應該可以運行。不是那個想法的粉絲,雖然它會讓我的設計過於複雜 - 所以如果任何人有更好的主意,我都是耳朵! – CmdrSharp