No log when run on que CLI
drselump14 opened this issue · 2 comments
drselump14 commented
I can't find any log when running the worker with que CLI
bundle exec que --log-level debug -q default --log-internals
Que waiting for jobs...
Adding a job works fine, and workers picked up the job but no information on the log.
Did I miss something?
This is my job
module TradeContracts
class ReviseWhenExpiredJob < ApplicationJob
extend T::Sig
queue_as :default
sig { params(trade_contract: TradeContract).returns(T.untyped) }
def perform(trade_contract:)
return unless should_execute?(trade_contract)
TradeContract::Operation::AutomaticRevise.call(model: trade_contract)
end
sig { params(trade_contract: TradeContract).returns(T::Boolean) }
def should_execute?(trade_contract)
trade_contract.may_revise? && trade_contract.expiration_job_id.present?
end
end
end
job = TradeContracts::ReviseWhenExpiredJob.set(wait_until: 30.seconds.from_now).perform_later(trade_contract: t)
# Gemfile
gem "que", "~> 1.0.0.beta4"
gem "que-scheduler"
gem "que-web"
The Que::Job format didn't work either.
ZimbiX commented
See the logging section of the docs.
We use a logging middleware:
# frozen_string_literal: true
module DexProviderBridge
module Que
module JobMiddleware
class Logging
def initialize(logger:)
@logger = logger
end
def call(job)
job_args = args(job)
logger.info("Starting #{job.job_name} job", **job_args)
before = Time.now.getutc
yield
duration = '%.2f' % (Time.now.getutc - before)
logger.info("Finished #{job.job_name} job in #{duration}s", **job_args)
end
private
def args(job)
job.que_attrs[:args].reduce({}, :merge)
end
attr_reader :logger
end
end
end
end
middlewares = [
DexProviderBridge::Que::JobMiddleware::Logging.new(logger: app['logger']),
# ...
]
middlewares.each do |middleware|
Que.job_middleware.push(middleware)
end
oeoeaio commented
Closing this now @drselump14, feel free to re-open if still an issue.