0

我将这个gem用于我的应用程序。我找不到我需要的参数。我的控制器中有两个功能:创建和分析。我想analyse-method在调用创建方法的 5 分钟后运行一个,或者我在模型中还有一个函数:我想anylse-method在调用一个进程方法的 5 分钟后运行一个(来自控制器)的进程。

我发现 smt 是这样的:

handle_asynchronously :in_the_future, :run_at => Proc.new { 5.minutes.from_now }

但它并没有说在它应该被调用的函数之后。

编辑: 我试图推迟我的工作,它似乎保存了一切,问题是 1 分钟后它没有运行perform_analysis方法。可能是什么问题?

模型:

after_create :process_name, :perform_analysis

 def perform_analysis
   list=Analysis.do_picture_analyse
   update_image_url(list)
    
  end
 handle_asynchronously :perform_analysis, :run_at => Proc.new { 1.minutes.from_now }

SQL (8.3ms) INSERT INTO "delayed_jobs" ("attempts", "created_at", "failed_at", "handler", "last_error", "locked_at", "locked_by", "priority", "queue", "run_at" , "updated_at") 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["attempts", 0], ["created_at", Sat, 16 Mar 2013 14: 30:19 UTC +00:00], ["failed_at", nil], ["handler", "--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/ActiveRecord:Arraydb\n 属性:\ n id: 45\n arraydb_file_name: ND2_CD8_133A.CEL\n arraydb_content_type: !binary |-\n YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt\n arraydb_file_size: 12110237\n 定义:'yes'\n 患者:ND\n 组织:CD8\n 刺激:\n芯片图像:\n 芯片信息:\n user_id: \n hist: \n hist_RMA: \n created_at: 2013-03-16 14:30:17.698742003 Z\n updated_at: 2013-03-16 14:30:19.297934640 Z\nmethod_name: :perform_analysis_without_delay\nargs: []\n"], ["last_error", nil], ["locked_at", nil], ["locked_by", nil], ["priority", 0], ["queue", nil], ["run_at ",2013 年 3 月 16 日星期六 14:31:19 UTC +00:00],["updated_at",2013 年 3 月 16 日星期六 14:30:19 UTC +00:00]]2013 年 3 月 16 日 14:31:19 UTC +00:00],["updated_at",星期六,2013 年 3 月 16 日 14:30:19 UTC +00:00]]2013 年 3 月 16 日 14:31:19 UTC +00:00],["updated_at",星期六,2013 年 3 月 16 日 14:30:19 UTC +00:00]]

提前致谢

4

1 回答 1

0

您可以使用回调来触发该方法。这将触发方法:in_the_future在创建操作完成后作为延迟作业排队运行 5 分钟。

after_create :in_the_future
于 2013-03-16T12:55:22.817 回答