Я установил чат с основным действием, подключенный к кабелю, в моем приложении. У меня есть обратный вызов after_create_commit, который отправляет сообщение на задание для трансляции на соответствующий канал. Он отлично работает, когда он настроен на выполнение, но не работает, когда он установлен на perform_later. Sidekiq выполняет задачу и транслирует на правый канал, но подписка на канал ничего не получает.Sidekiq perform_later не работает с кабелем действия
Здесь канал создаются:
PodsChannel is transmitting the subscription confirmation
PodsChannel is streaming from pods_channel_310
PodsChannel#speak({"message"=>"word", "pod_slug"=>"310", "user_id"=>"1", "msg_type"=>"pod_message"})
Вот сообщение приходит и направляется sidekiq:
[ActiveJob] Enqueued MessageBroadcastJob (Job ID: c9cc59ce-2202-400d-92fb-15b80a9ece67) to Sidekiq(development_default) with arguments: #<GlobalID:0x007fa2e63526a0 @uri=#<URI::GID gid://sutra/PodMessage/1390>>
А вот sidekiq обработки задания и вещания на право канал:
[ActiveJob] [MessageBroadcastJob] [546222f6-9a57-493d-a3bb-b4886e0ad708] Rendered pod_messages/_pod_message.html.erb (61.0ms)
[ActiveJob] [MessageBroadcastJob] [546222f6-9a57-493d-a3bb-b4886e0ad708] [ActionCable] Broadcasting to pods_channel_310: {:message=>"<div class='msg-wrap' id='msg_1389'><div class='msg-avatar'><a href=\"http://example.org/lorenzsell\"><img class=\"avatar-img\" alt=\"Lorenz\" src=\"/uploads/user/avatar/1/thumb_Lorenz2-square.jpg\" /></a></div><div class='msg-details'><div class='msg-meta'><div class='msg-sender'>Lorenz</div><div class='msg-timestamp'>Friday, August 12 at 12:09 AM</div><div class='msg-delete'><a data-remote=\"true\" rel=\"nofollow\" data-method=\"delete\" href=\"/delete_pod_message/1389\"><span class='glyphicon glyphicon-remove-circle' aria-hidden='true'></span></a></div></div><div class='msg-text'>word</div></div></div>\n"}
[ActiveJob] [MessageBroadcastJob] [546222f6-9a57-493d-a3bb-b4886e0ad708] Performed MessageBroadcastJob from Sidekiq(development_default) in 143.57ms
Но тогда канал фактически не получает никаких данных. Как я уже сказал, это работает отлично, когда он настроен на выполнение_ now, но borks on perform_later. Есть идеи?
приятно. это действительно сработало. большой наконечник. Спасибо! – Lorenz
для меня это не работает для консоли. Однако он работает с Sidekiq. – Julien
отлично !. работает на меня! –