首页 > 解决方案 > 延迟作业进程运行,队列中有一个项目,仍然没有运行(也没有失败)

问题描述

我只是想在后台运行一个函数,按照本指南的说明使用delayed_job:https ://github.com/collectiveidea/delayed_job

我做了以下事情:

  1. 包含gem 'delayed_job_active_record'在我的 Gemfile 中。
  2. 添加config.active_job.queue_adapter = :delayed_job到我的config/application.rb文件中。
  3. 从控制台rails generate delayed_job:active_record跑来跑去。rake db:migrate

现在,当我转到以前可以工作的功能时,例如:

t = Test.new(@test)
t.start

并将第二行替换为

t.delay.start

我可以看到该作业已成功添加到延迟作业表中。但是,什么都没有发生。它从不运行。它甚至永远不会失败。我已经验证bin/delayed_job确实在运行(根据ps aux | grep -i delay

但是什么都没有运行。我究竟做错了什么?

延迟的作业表如下所示:

在此处输入图像描述

我看到工作被锁定,但不知道这意味着什么。我通过运行清除了锁DelayedJob.all.update(locked_at: nil, locked_by: nil)

标签: ruby-on-railsdelayed-job

解决方案


推荐阅读