在轨道的生产模式下,我的工作人员在模型中看不到任何内容



我一直在努力弄清楚为什么我的工人不在生产模式下工作,但他们在开发模式下工作。这是我发现的。

  1. 在开发和生产模式下,我可以使用rails c命令查看数据库中的内容,并且它是准确的。
  2. 但是,如果我放置一个binding.pry来在运行时暂停我的工作,则它在模型中看不到任何项目。这没有任何意义。事实上,我可以做Campaign.all,它在那里什么也没显示,然后直接回到 rails 控制台并执行Campaign.all,它会显示。

有什么想法吗?

以下是 rails 控制台和binding.pry暂停的输出:

$ rails c
2.5.1 :009 > SidekiqTask.first
SidekiqTask Load (0.4ms)  SELECT  `sidekiq_tasks`.* FROM `sidekiq_tasks` ORDER BY `sidekiq_tasks`.`id` ASC LIMIT 1
=> #<SidekiqTask id: 5, campaign_id: 1, job_id: "c19d37f4c70060d3b59059b0", task: "Start Campaign", created_at: "2018-10-04 20:11:03", updated_at: "2018-10-04 20:11:03"> 

然后这是另一个

[4] pry(#<CampaignWorker>)> SidekiqTask.first
=> nil

知道这里可能发生了什么吗?此问题仅在工作线程运行时发生,因此在模型中看不到任何内容。如果我在控制器中查找它,它看起来很好。

刚刚发现这是因为我的 Sidekiq 实例没有在生产模式下运行。我通过运行以下命令修复了此问题:

bundle exec sidekiq --environment production

相关内容

最新更新