From f9f292c0c167a449f277f24006fefbc51bf8eb8f Mon Sep 17 00:00:00 2001 From: junyi Date: Mon, 7 Sep 2026 01:43:19 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20sync=5Ffgu=5Fpersonal=5Fda?= =?UTF-8?q?ta.gemspec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sync_fgu_personal_data.gemspec | 52 ++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 24 deletions(-) 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|