相关疑难解决方法(0)

Rails延迟工作和图书馆课程

嘿,我们有一个库类(lib/Mixpanel)调用延迟作业,如下所示:

class Mixpanel

  attr_accessor :options
  attr_accessor :event

  def track!()
   .. 
   dj = send_later :access_api # also tried with self.send_later
   ..
  end

  def access_api
   ..
  end
Run Code Online (Sandbox Code Playgroud)

问题是当我们运行rake jobs:work:我们得到以下错误:

undefined method `access_api' for #<YAML::Object:0x24681b8>
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

ruby-on-rails delayed-job

8
推荐指数
1
解决办法
2580
查看次数

delayed_job没有记录

我无法记录来自delayed_job进程的消息.这是正在运行的工作.

class MyJob
  def initialize(blahblah)
    @blahblah = blahblah
    @logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))
  end
  def perform
    @logger.add Logger::INFO, "logging from delayed_job"
    #do stuff
  end
end
Run Code Online (Sandbox Code Playgroud)

我尝试了各种日志记录级别,并且在我的环境配置中有config.log_level =:debug.我从monit运行delayed_job.我正在使用delayed_job 3.0.1和ruby 1.9.3以及rails 3.0.10.

ruby ruby-on-rails background-process delayed-job ruby-on-rails-3

7
推荐指数
2
解决办法
6090
查看次数

从collectiveidea/delayed_job中登录

我尝试在rails中的delayed_job内登录.

我将其配置如下:

Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.max_attempts = 3
Delayed::Worker.backend = :active_record
Delayed::Worker.logger = ActiveSupport::BufferedLogger.new("log/#{Rails.env}_delayed_jobs.log", Rails.logger.level)
Delayed::Worker.logger.auto_flushing = 1
Run Code Online (Sandbox Code Playgroud)

定义我的工作:

class TestJob

    def initialize(user)
        @user = user
    end


     #called when enqueue is performed
    def enqueue(job)
       Delayed::Worker.logger.info("TestJob: enqueue was called")
    end

    def perform
        Delayed::Worker.logger.info("\n\n\n\nTestJob: in perform, for user #{@user.twitter_username}")
    end
end
Run Code Online (Sandbox Code Playgroud)

但是当我打电话给我的工作时

 Delayed::Job.enqueue(TestJob.new(user), 2)
Run Code Online (Sandbox Code Playgroud)

即使delayed_jobs表显示已执行作业,日志文件仍为空.

有任何想法吗?

ruby-on-rails delayed-job

5
推荐指数
1
解决办法
842
查看次数

有delayed_job日志"put",sql查询和作业状态

现在只记录以下内容logs/delayed_job.log:

2012-04-20T03:57:44+0000: Cacher completed after 5.3676
2012-04-20T03:57:44+0000: 1 jobs processed at 0.1744 j/s, 0 failed ...
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是让它也记录我puts和我的SQL查询,就像在开发模式下一样,除了它仍然被记录log/delayed_job.log.

我尝试添加以下initializers/delayed_job_config.rb但没有运气:

Delayed::Worker.logger = Rails.logger
Delayed::Worker.logger.level = Logger::DEBUG
Run Code Online (Sandbox Code Playgroud)

(我的所有内容puts现在都已记录,但没有更多的作业状态日志,仍然没有SQL查询)

ruby logging ruby-on-rails

3
推荐指数
1
解决办法
3985
查看次数