动态计划在resque执行新进程时丢失

时间:2013-12-23 08:29:14

标签: ruby-on-rails redis passenger resque resque-scheduler

我正在使用resque-scheduler根据用户的输入调度动态crons。我的服务器堆栈正在使用带乘客+ nginx配置的Ubuntu 12.04。

我设置了 Resque :: Scheduler.dynamic = true 并使用 set_schedule方法和persist:true 选项来安排动态作业

起初问题是它给了我一些乘客错误: -

Redis::InheritedError (Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.

所以我向我的resque初始化程序引入了以下块: -

PhusionPassenger.on_event(:starting_worker_process) do |forked|
  if forked
    # Reconnect Resque Redis instance.
    Resque.redis.client.reconnect
  end
end

现在,每次重新启动或安排新的动态作业后,它都会加载我的静态计划,并且动态计划正在丢失。即使是随机时间更新时间表,也只加载静态时间表。

1 个答案:

答案 0 :(得分:0)

加载动态计划的问题在gem版本中。请参阅github上的最新resque调度程序发布,这应该可以解决问题(大约10天后修复)。