0

该项目使用任务计划程序 - gem 'clockwork'. Capistrano 执行钩子:

after :'deploy:finished', :'clockwork:restart'

调度程序被触发一次(在这个钩子之后),运行所有 rake 任务,然后任务不会启动。无论我设置多少间隔,在一天或 5 分钟内,任务都不再开始。宝石“守护进程”已安装。我很乐意为您提供任何帮助!

更新

require 'clockwork'
require_relative './boot'
require_relative './environment'

module Clockwork
 handler do |job|
  puts "Running job: #{job}"
end

every(1.minute, 'job:some_task') do
 rake_task('job:some_task')
end

def rake_task(task_name)
  AppName::Application.load_tasks
  Rake::Task[task_name].invoke
end

configure do |config|
  config[:sleep_timeout] = 3600 # 1 hour
  config[:logger] = Logger.new("#{Rails.root}/log/clockwork.log")
  config[:tz] = 'UTC'
  config[:max_threads] = 15
  config[:thread] = true
end
end
4

1 回答 1

0

我的猜测是您没有将发条作为守护进程运行,因此它只运行一次。看看这个要点

desc "Start clockwork"
task :start, :roles => clockwork_roles, :on_no_matching_servers => :continue do
  run "daemon --inherit --name=clockwork --env='#{rails_env}' --output=#{log_file} --pidfile=#{pid_file} -D #{current_path} -- bundle exec clockwork config/clockwork.rb"
end

您始终可以通过 SSH 进入您的部署,然后检查 PID 列表或在您的 Rails 应用程序中检查存储时钟系统 PID 的临时文件:

.../tmp/pids/clockwork.pid

或者检查发条的日志:

.../log/clockwork.log
于 2018-08-06T09:02:11.180 回答