【问题标题】:Send message en hook success - Delayed_job发送消息 en hook 成功 - Delayed_job
【发布时间】:2019-07-17 08:25:08
【问题描述】:

作业成功完成后如何发送消息?当工作正确完成时,我想发送消息并在 javascript 中以 swal 显示,但我不知道该怎么做,有什么建议吗?

除了发消息我不需要做任何事情

class CompileProjectJob < Struct.new(:url)
  def perform
  end

  def success(job)
     #send message when the work is successful
  end
end

【问题讨论】:

    标签: ruby-on-rails delayed-job


    【解决方案1】:

    perform方法队列结束时发送消息的新延迟作业

    class CompileProjectJob < Struct.new(:url)
      def perform
        # the code here of this job 
        # queue new job 
      end
    end
    

    perform 方法的代码像任何常规代码一样顺序执行

    更新

    将消息发送到前端有两种方式(推和拉)more info - 推送:使用 Web 套接字将消息从后端推送到前端 - pull:前端每隔一段时间发送请求,检查后端是否有新数据

    您可以使用这些技术中的任何一种来解决问题

    如果你使用了pulling,你会让作业更新一个数据存储,例如 Redis 或 mysql。在某些情况下,前端将每隔一段时间发送一个请求以检查新数据,这将是一个更好的解决方案,但我认为您正在寻找其他技术

    推动: 在这里你可以使用有源电缆https://guides.rubyonrails.org/action_cable_overview.html 或者像 pusher 这样的第三方https://www.pusher.com/tutorials/realtime-table-ruby-rails 这里的主要思想是您的前端应用程序将打开与您的服务器的 websocket 连接。此套接字将保持打开状态并通过通道侦听来自后端的任何更新,因此当您通过此通道完成作业后发送更新时,前端将接收该更新,因此您可以添加代码以显示消息

    【讨论】:

    • 我的问题是如何向执行中的 javascript 警报发送消息?
    • 使用 Web 套接字 .. 使用类似 pusher pusher.com/tutorials/realtime-table-ruby-rails 的最简单的解决方案之一,然后您会将消息发送到带有您的 Web 客户端应用程序打开的 WebSocket 的推送服务器,因此用户会说实时更新查看链接中的教程
    • 另外,您可以使用动作电缆guides.rubyonrails.org/action_cable_overview.html 它的工作方式类似于推杆
    • 感谢您的帮助,对我帮助很大!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2011-11-11
    • 2013-08-28
    • 1970-01-01
    • 2015-06-18
    • 2016-09-21
    相关资源
    最近更新 更多