繁体   English   中英

脚本问题/ delayed_job开始逗号

[英]Issue with script/delayed_job start commad

运行script / delayed_job start命令时出现以下错误。 我正在使用Jruby,因此尝试使用以下命令:

jruby script/delayed_job start

但是我收到以下错误:

fork() function is unimplemented on this machine (NotImplementedError)

我已经用谷歌搜索,因为我的观察叉没有为jruby实现。 因此,我正在考虑使用rake任务运行delay_job脚本。

谁能帮我写出需要运行delay_job脚本的rake任务。

下面是运行延迟工作的rake任务的代码

路径将为\\ script \\ delayed_job.rb

#!/usr/bin/env ruby
# -*- ruby -*-
require 'rubygems'
require 'daemon_spawn'

RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))

class DelayedJobWorker < DaemonSpawn::Base
  def start(args)
    ENV['RAILS_ENV'] ||= args.first || 'development'
    require File.join(RAILS_ROOT, 'config', 'environment')

    Delayed::Worker.new.start
  end

  def stop
    system("kill `cat #{RAILS_ROOT}/tmp/pids/delayed_job.pid`")
  end
end

DelayedJobWorker.spawn!(:log_file => File.join(RAILS_ROOT, "log", "delayed_job.log"),
                        :pid_file => File.join(RAILS_ROOT, 'tmp', 'pids', 'delayed_job.pid'),
                        :sync_log => true,
                        :working_dir => RAILS_ROOT)

我在旧版Rails应用程序中使用的是jruby 1.7.3,rails 2.3.17和delay_job 1.8.4。

命令“ jruby脚本/ delayed_job启动”不适用于我的应用程序。 我听说jruby 1.7.3不支持delay_job。 因此,作为一种解决方法,我决定使用rake任务“ jobs:work”任务,而不是“ jruby script / delayed_job start”命令。

我在冻结的delay_job(1.8.4)gem的lib / delayed_job.rb文件中添加了以下行。 需要File.dirname( FILE )+'/ delayed / performable_method'

这已经解决了在我的质量保证和生产环境中运行“ rake jobs:work”任务时与“ performable_method”相关的错误。

现在,我延迟的工作在所有环境下都可以正常工作。 希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM