que-rb/que

No log when run on que CLI

drselump14 opened this issue · 2 comments

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.

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

Closing this now @drselump14, feel free to re-open if still an issue.