【问题标题】:Dynamic Schedules getting lost while resque forks a new process当 resque 分叉一个新进程时,动态计划会丢失
【发布时间】:2014-01-11 10:37:03
【问题描述】:

我正在使用 resque-scheduler 根据用户的输入来安排动态 cron。我的服务器堆栈使用带有乘客 + 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

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

【问题讨论】:

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


    【解决方案1】:

    加载动态时间表的问题存在于 gem 版本中。请参考 github 上最新的 resque 调度器版本,这应该可以解决问题(大约 10 天前已修复)。

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多