diff --git a/sync_fgu_personal_data.gemspec b/sync_fgu_personal_data.gemspec index c41c355..f4dda61 100644 --- a/sync_fgu_personal_data.gemspec +++ b/sync_fgu_personal_data.gemspec @@ -34,30 +34,34 @@ if bundle_update_flag puts "Installing tiny_tds gem ..." bundler_with_clean_env{ system("gem install tiny_tds -- '--with-freetds-dir=#{home_path}/freetds-1.1.24_build'") } end - crontab_sync = `crontab -l|grep 'bundle exec rake sync_fgu_personal_plugins:sync'|grep #{ENV['PWD']}` - sync_cron="0 0 * * * /bin/bash -l -c 'cd #{ENV['PWD']} && bundle exec rake sync_fgu_personal_plugins:sync > /dev/null'" - crontab_sync_jobs = crontab_sync.split("\n") - if crontab_sync_jobs.count == 0 - %x(CRON="#{sync_cron}" && (crontab -l; echo "$CRON" ) | crontab -) - elsif crontab_sync_jobs.count > 1 - crontab_jobs = `crontab -l` - crontab_sync_jobs[1..-1].each do |s| - crontab_jobs = crontab_jobs.sub(s,"") - end - %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) - elsif crontab_sync_jobs[0][0...3] == "0 5" #replace old cronjob settings - crontab_jobs = `crontab -l` - crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],sync_cron) - %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) - elsif crontab_sync_jobs[0].include?("-23/12") #replace 12 hours to 24 hours - crontab_jobs = `crontab -l` - crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],crontab_sync_jobs[0].sub("-23/12","")) - %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) - elsif crontab_sync_jobs[0].include?("*/12") #replace 12 hours to 24 hours - crontab_jobs = `crontab -l` - crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],crontab_sync_jobs[0].sub("*/12","0")) - %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) - end + # ===== 自動寫入/修正 crontab 邏輯已停用 2026-09-07:因多站台部署時間不同, + # ===== 全數寫死排在 "0 0 * * *",造成 13+ 個站台的 sync 排程集中在同一分鐘, + # ===== 導致記憶體瞬間暴衝、mongod 被 OOM Killer 強制關閉。crontab 時間改為手動維護。 + # + # crontab_sync = `crontab -l|grep 'bundle exec rake sync_fgu_personal_plugins:sync'|grep #{ENV['PWD']}` + # sync_cron="0 0 * * * /bin/bash -l -c 'cd #{ENV['PWD']} && bundle exec rake sync_fgu_personal_plugins:sync > /dev/null'" + # crontab_sync_jobs = crontab_sync.split("\n") + # if crontab_sync_jobs.count == 0 + # %x(CRON="#{sync_cron}" && (crontab -l; echo "$CRON" ) | crontab -) + # elsif crontab_sync_jobs.count > 1 + # crontab_jobs = `crontab -l` + # crontab_sync_jobs[1..-1].each do |s| + # crontab_jobs = crontab_jobs.sub(s,"") + # end + # %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) + # elsif crontab_sync_jobs[0][0...3] == "0 5" #replace old cronjob settings + # crontab_jobs = `crontab -l` + # crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],sync_cron) + # %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) + # elsif crontab_sync_jobs[0].include?("-23/12") #replace 12 hours to 24 hours + # crontab_jobs = `crontab -l` + # crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],crontab_sync_jobs[0].sub("-23/12","")) + # %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) + # elsif crontab_sync_jobs[0].include?("*/12") #replace 12 hours to 24 hours + # crontab_jobs = `crontab -l` + # crontab_jobs = crontab_jobs.sub(crontab_sync_jobs[0],crontab_sync_jobs[0].sub("*/12","0")) + # %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) + # end end # Describe your gem and declare its dependencies: Gem::Specification.new do |spec|