trabajo-afectivo/script/scheduler.rb

61 lines
1.1 KiB
Ruby
Raw Normal View History

2013-03-10 23:14:31 +00:00
#!/usr/bin/env ruby
2016-10-19 03:11:36 +00:00
# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
2013-06-13 07:01:06 +00:00
2013-03-10 23:14:31 +00:00
$LOAD_PATH << './lib'
require 'rubygems'
# load rails env
2013-03-10 23:14:31 +00:00
dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
Dir.chdir dir
RAILS_ENV = ENV['RAILS_ENV'] || 'development'
require 'rails/all'
require 'bundler'
require File.join(dir, 'config', 'environment')
require 'daemons'
2013-03-10 23:14:31 +00:00
def before_fork
# remember open file handles
@files_to_reopen = []
ObjectSpace.each_object(File) do |file|
@files_to_reopen << file unless file.closed?
end
end
def after_fork(dir)
Dir.chdir dir
# Re-open file handles
@files_to_reopen.each do |file|
file.reopen file.path, 'a+'
file.sync = true
end
$stdout.reopen( "#{dir}/log/scheduler_out.log", 'w')
$stderr.reopen( "#{dir}/log/scheduler_err.log", 'w')
end
before_fork
2013-03-10 23:14:31 +00:00
daemon_options = {
2015-06-05 14:23:03 +00:00
multiple: false,
dir_mode: :normal,
dir: File.join(dir, 'tmp', 'pids'),
backtrace: true
2013-03-10 23:14:31 +00:00
}
2015-05-20 23:07:13 +00:00
name = 'scheduler'
2014-02-03 18:27:27 +00:00
Daemons.run_proc(name, daemon_options) do
if ARGV.include?('--')
ARGV.slice! 0..ARGV.index('--')
else
ARGV.clear
end
after_fork(dir)
2014-02-03 18:27:27 +00:00
require 'scheduler'
2015-05-20 23:07:13 +00:00
Scheduler.threads
2014-02-03 18:27:27 +00:00
end