Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 如何设置重新确认作业的超时_Ruby On Rails_Ruby_Resque - Fatal编程技术网

Ruby on rails 如何设置重新确认作业的超时

Ruby on rails 如何设置重新确认作业的超时,ruby-on-rails,ruby,resque,Ruby On Rails,Ruby,Resque,我需要实现一个功能,如果在某个时间内没有处理作业,则可以让重新创建作业超时 因此,假设创建了一个作业,但无法在一小时内处理,因为队列太长和/或没有足够的工人在工作 在这种情况下,我不想删除这份工作……最好的办法是什么?也许有一个配置参数我正在监督或第三方宝石 谢谢我不知道默认情况下是否有办法在Resque中实现这一点,但自己动手并不难 在你的工作中,做这样的事情: def perform(id, queued_at) return false unless Time.parse(queued

我需要实现一个功能,如果在某个时间内没有处理作业,则可以让重新创建作业超时

因此,假设创建了一个作业,但无法在一小时内处理,因为队列太长和/或没有足够的工人在工作

在这种情况下,我不想删除这份工作……最好的办法是什么?也许有一个配置参数我正在监督或第三方宝石


谢谢

我不知道默认情况下是否有办法在Resque中实现这一点,但自己动手并不难

在你的工作中,做这样的事情:

def perform(id, queued_at)
  return false unless Time.parse(queued_at) >= 1.hour.ago

  ...
end

要将作业排队,请执行以下操作:Resque.enqueue(MyJobClass、object.id、DateTime.now)。第一行将自动转储作业,如果作业在一小时前排队时间超过一小时,将阻止其执行。

默认情况下,我不知道是否有办法在Resque中执行此操作,但您自己也不难做到

在你的工作中,做这样的事情:

def perform(id, queued_at)
  return false unless Time.parse(queued_at) >= 1.hour.ago

  ...
end

要将作业排队,请执行以下操作:Resque.enqueue(MyJobClass、object.id、DateTime.now)。如果作业排队时间超过一小时,第一行将自动转储作业,并阻止其执行。

是一个gem,用于超时作业。不确定它是否删除或notalready是否已检查…它将终止长时间运行的重新确认任务。因此,这不是我想要的:(是一个应该暂停作业的gem。不确定它是否会删除或notalready检查…它会杀死长时间运行的resque任务。因此,这不是我想要的:(谢谢。我们会完成这项工作的。我只是想知道直接从resque访问queued_at字段是否是一种简单的方法!?我很有信心resque甚至不会费心跟踪queued_at,所以不,除非您自己跟踪它,否则无法访问它。我必须添加.to_s:Time.parse(queued_at.to_s)谢谢。我们会完成这项工作的。我只是想知道直接从resque访问queued_at字段是否是一种简单的方法!?我非常自信resque甚至不会费心跟踪queued_at,所以不,除非您自己跟踪它,否则无法访问它。我必须添加.to_s:Time.parse(queued_at.to_s)