2017-01-30 63 views
0

我想在我的rails應用程序中使用sidekiq顯示提醒通知作爲flash消息。我學會了如何在this answer的員工中設置Flash消息。如何在sidekiq工作完成後顯示flash對象-rails

正如該答案的最後一點所述,如何在進入時自動顯示通知?

此外,如何在閃光消息關閉後刪除該條目?

我是初學者。請幫助。

按照要求,我將我的代碼的嘗試:

在我的控制器:

def show 
    @user = User.find(params[:id]) 
    msg = $redis.get("messages:#{@user.id}") 
    flash[:info] = msg if !msg.nil? 
end 

在我sidekiq工人:

def perform user, type 
    @user = user`enter code here` 
    message = "Message content" 
    $redis.set("messages:#{user.id}", message) 
end 

我想是刷新用戶頁面當設置了redis鍵時,並且在按下閃光燈的關閉按鈕時也刪除該對。

+0

_「如何自動顯示通知...」_ **顯示您的代碼**嘗試執行此任務,以便我們幫助您解決問題。 –

+0

我已經按照你的建議添加了代碼。 –

回答

2

Sidekiq是專爲異步作業處理。一旦你創建了一個工作,你的控制器就完成了,併爲瀏覽器呈現頁面。你的工作可能會從現在開始或者從現在開始1小時後處理,你不知道。換句話說,你不能做你想做的事。你應該設計你的頁面流來解決這個問題,或者不要爲這個工作創建一個後臺作業。

+0

好吧,我很快意識到這一點,因此進入了redis。如果條目存在,我的控制器將在redis中顯示消息。現在的問題是如何在進入redis時自動刷新頁面。 –

相關問題