mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 09:36:19 -05:00
FIX: Load scheduled job from a file.
This commit is contained in:
parent
9c24f09fd9
commit
9730d2e3a7
2 changed files with 58 additions and 58 deletions
|
@ -0,0 +1,57 @@
|
|||
module Jobs
|
||||
class DailyPerformanceReport < Jobs::Scheduled
|
||||
every 1.day
|
||||
per_host
|
||||
|
||||
def execute(args)
|
||||
if SiteSetting.daily_performance_report &&
|
||||
RailsMultisite::ConnectionManagement.current_db == "default"
|
||||
result = `ruby #{Rails.root}/plugins/discourse-nginx-performance-report/script/nginx_analyze.rb --limit 1440`
|
||||
|
||||
report_data =
|
||||
if result.strip.empty?
|
||||
<<~TEXT
|
||||
Report is only available in latest image, please run:
|
||||
|
||||
```text
|
||||
cd /var/discourse
|
||||
./launcher rebuild app
|
||||
```
|
||||
TEXT
|
||||
else
|
||||
"```text\n#{result}\n```"
|
||||
end
|
||||
|
||||
PostCreator.create(Discourse.system_user,
|
||||
topic_id: performance_topic_id,
|
||||
raw: report_data,
|
||||
skip_validations: true)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
def performance_topic_id
|
||||
if SiteSetting.performance_report_topic_id > 0
|
||||
topic = Topic.find_by(id: SiteSetting.performance_report_topic_id)
|
||||
return topic.id if topic
|
||||
end
|
||||
|
||||
staff_category = Category.find_by(id: SiteSetting.staff_category_id)
|
||||
raise StandardError, "Staff category was not found" unless staff_category
|
||||
|
||||
post = PostCreator.create(Discourse.system_user,
|
||||
raw: I18n.t('performance_report.initial_post_raw'),
|
||||
category: staff_category.name,
|
||||
title: I18n.t('performance_report.initial_topic_title'),
|
||||
skip_validations: true)
|
||||
|
||||
|
||||
unless post && post.topic_id
|
||||
raise StandardError, "Could not create or retrieve performance report topic id"
|
||||
end
|
||||
|
||||
SiteSetting.performance_report_topic_id = post.topic_id
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -4,62 +4,5 @@
|
|||
# url: https://github.com/discourse/discourse/tree/master/plugins/discourse-nginx-performance-report
|
||||
|
||||
after_initialize do
|
||||
module ::Jobs
|
||||
class DailyPerformanceReport < Scheduled
|
||||
every 1.day
|
||||
per_host
|
||||
|
||||
def execute(args)
|
||||
if SiteSetting.daily_performance_report &&
|
||||
RailsMultisite::ConnectionManagement.current_db == "default"
|
||||
result = `ruby #{Rails.root}/plugins/discourse-nginx-performance-report/script/nginx_analyze.rb --limit 1440`
|
||||
|
||||
report_data =
|
||||
if result.strip.empty?
|
||||
<<~TEXT
|
||||
Report is only available in latest image, please run:
|
||||
|
||||
```text
|
||||
cd /var/discourse
|
||||
./launcher rebuild app
|
||||
```
|
||||
TEXT
|
||||
else
|
||||
"```text\n#{result}\n```"
|
||||
end
|
||||
|
||||
PostCreator.create(Discourse.system_user,
|
||||
topic_id: performance_topic_id,
|
||||
raw: report_data,
|
||||
skip_validations: true)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
def performance_topic_id
|
||||
if SiteSetting.performance_report_topic_id > 0
|
||||
topic = Topic.find_by(id: SiteSetting.performance_report_topic_id)
|
||||
return topic.id if topic
|
||||
end
|
||||
|
||||
staff_category = Category.find_by(id: SiteSetting.staff_category_id)
|
||||
raise StandardError, "Staff category was not found" unless staff_category
|
||||
|
||||
post = PostCreator.create(Discourse.system_user,
|
||||
raw: I18n.t('performance_report.initial_post_raw'),
|
||||
category: staff_category.name,
|
||||
title: I18n.t('performance_report.initial_topic_title'),
|
||||
skip_validations: true)
|
||||
|
||||
|
||||
unless post && post.topic_id
|
||||
raise StandardError, "Could not create or retrieve performance report topic id"
|
||||
end
|
||||
|
||||
SiteSetting.performance_report_topic_id = post.topic_id
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
load File.expand_path("../app/jobs/scheduled/daily_performance_report.rb", __FILE__)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue