Ruby on rails 延迟作业在被分派后未执行,rails
我在控制器中这样做:Ruby on rails 延迟作业在被分派后未执行,rails,ruby-on-rails,Ruby On Rails,我在控制器中这样做: MyTestJob.perform_later 调用此命令时,将在my rails控制台中显示: [ActiveJob] Enqueued MyTestJob (Job ID: e7af2684-4dc4-4a1f-bac7-b189dddb6f2f) to DelayedJob(default) [ActiveJob] (0.4ms) BEGIN [ActiveJob] SQL (0.6ms) INSERT INTO "public"."delayed_j
MyTestJob.perform_later
调用此命令时,将在my rails控制台中显示:
[ActiveJob] Enqueued MyTestJob (Job ID: e7af2684-4dc4-4a1f-bac7-b189dddb6f2f) to DelayedJob(default)
[ActiveJob] (0.4ms) BEGIN
[ActiveJob] SQL (0.6ms) INSERT INTO "public"."delayed_jobs" ("queue", "handler", "run_at", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["queue", "default"], ["handler", "--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: GenerateCouponcodesJob\n job_id: e7af2684-4dc4-4a1f-bac7-b189dddb6f2f\n queue_name: default\n arguments: []\n"], ["run_at", "2015-10-28 09:58:17.891850"], ["created_at", "2015-10-28 09:58:17.892095"], ["updated_at", "2015-10-28 09:58:17.892095"]]
[ActiveJob] (11.0ms) COMMIT
Rendered campaign/test.html.erb within layouts/application (0.1ms)
Completed 200 OK in 254ms (Views: 233.6ms | ActiveRecord: 12.0ms)
所以上面的日志说这项工作已经完成了(这证明我的延迟工作人员工作正常),但没有得到执行,
这是我的工作:
class MyTestJob < ActiveJob::Base
queue_as :default
def perform(*args)
directory = Rails.root
File.open(File.join(directory, 'file.txt'), 'w') do |f|
f.puts "contents"
end
Delayed::Worker.logger.debug("Log Entry")
end
end
classmytestjob
在delayed_job.log中未创建文件和日志。
我做的每件事都是正确的,但仍然没有错误
上面的日志显示作业已排队(这证明我的延迟工作人员工作正常)
没有。这意味着“排队器”工作正常。对这个工人只字不提
它应该作为一个单独的进程运行
bundle exec rake jobs:work
哦作业是否可以自动运行,或者每次需要执行作业时都必须运行此命令?以及如何清空队列?只要启动worker,它就会坐在那里等待作业。