Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:sidekiq会重复这个工作吗?_Ruby On Rails_Ruby_Sidekiq - Fatal编程技术网

Ruby on rails Rails:sidekiq会重复这个工作吗?

Ruby on rails Rails:sidekiq会重复这个工作吗?,ruby-on-rails,ruby,sidekiq,Ruby On Rails,Ruby,Sidekiq,假设我有一个sidekiq工人: def perform post_id post = Post.find post_id post.do_something end 如果找不到帖子并引发异常,会发生什么 sidekiq会再试一次吗 如果没有使用sidekiq_选项,那么有什么更好的设计可以让sidekiq不再尝试:retry=>false 谢谢 如果不希望引发异常,请改用find_by_id,如果记录不存在,则返回nil,而不是引发异常。请务必检查nil,不过: de

假设我有一个sidekiq工人:

  def perform post_id
    post = Post.find post_id
    post.do_something
  end
如果找不到帖子并引发异常,会发生什么

sidekiq会再试一次吗

如果没有使用sidekiq_选项,那么有什么更好的设计可以让sidekiq不再尝试:retry=>false


谢谢

如果不希望引发异常,请改用
find_by_id
,如果记录不存在,则返回
nil
,而不是引发异常。请务必检查
nil
,不过:

def perform post_id
  post = Post.find_by_id post_id
  post.do_something if post
end

我通常
rescue nil
很多发现都是为了安全。在Rails 4中,代码是
post=post.find\u by(id:post\u id)