Ruby on rails Rails+DelayedJob:如何显示延迟作业任务正在运行/已完成的状态?

Ruby on rails Rails+DelayedJob:如何显示延迟作业任务正在运行/已完成的状态?,ruby-on-rails,ruby,delayed-job,status,polling,Ruby On Rails,Ruby,Delayed Job,Status,Polling,我正在处理一项需要一些时间的任务,所以我正在考虑将此任务分配给延迟的作业。向用户显示当前已处理任务(如处理和完成)的状态信息将非常方便用户 看看官方,我看到有一些成功的,事后诸如此类的方法,但是如何使用它们呢 提前谢谢。事实上,我在项目中有效地使用了DelayedJob。以下步骤对我来说很好。 假设我们有一个模块或类订阅,我调用一个方法,该方法被定义为使用延迟作业的模块方法,如下所示: 订阅延迟:队列=> 插入顺序{广告客户.广告客户id},:优先级=> 1,:记录_of=> 请求跟踪。记录。拉

我正在处理一项需要一些时间的任务,所以我正在考虑将此任务分配给延迟的作业。向用户显示当前已处理任务(如处理和完成)的状态信息将非常方便用户

看看官方,我看到有一些成功的,事后诸如此类的方法,但是如何使用它们呢


提前谢谢。

事实上,我在项目中有效地使用了DelayedJob。以下步骤对我来说很好。 假设我们有一个模块或类订阅,我调用一个方法,该方法被定义为使用延迟作业的模块方法,如下所示:

订阅延迟:队列=> 插入顺序{广告客户.广告客户id},:优先级=> 1,:记录_of=> 请求跟踪。记录。拉数据广告商、日期、插入顺序

现在,如果您想要跟踪错误、成功或任何其他挂钩,那么您必须在模块或相应的类中定义它们,如下所示

module Subsciption
  def self.error(job, exception)
    puts "Error occurred"
    sleep(160)
  end
end

表示所有这些钩子都在处理用于后台处理的对象。

@user984621这有用吗?谢谢你的回答。但我仍在试图找出如何在我的问题上使用此过程-我所做的只是调用一个单行Subscription.delay.cancel\u subscriptionuser-那么我必须为它创建一个特殊的模块订阅吗?在视图中,如何显示任务是否正在处理/完成的信息?抱歉,对于项目中的类或模块来说,meIs Subscription有点混乱?我认为在您的情况下,只需在Subscription类中定义一个self方法。然后它将工作,因为订阅是一个控制器类和一个模型,而不是一个模块。但是,如果我不知道作业的参数,如何从模型/控制器调用该方法,异常?或者-我如何得到它们?