26 lines
874 B
Ruby
26 lines
874 B
Ruby
# frozen_string_literal: true
|
|
|
|
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
|
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
|
require 'scheduled_jobs'
|
|
|
|
desc "For use with Heroku's Scheduler add-on"
|
|
|
|
# We use a single rake call so we can catch and send any errors that happen in the job
|
|
task :heroku_scheduled_job, [:name] => :environment do |_t, args|
|
|
job_name = args[:name]
|
|
# Fetch all the super admin emails so we can send a report
|
|
enum = ScheduledJobs.send(job_name)
|
|
|
|
results = ''
|
|
enum.each do |lamb|
|
|
result = lamb.call
|
|
results += "Success: #{result}\n"
|
|
rescue Exception => e
|
|
results += "Failure: #{e}\n"
|
|
end
|
|
GenericMailer.admin_notice(
|
|
subject: "Scheduled job results on CommitChange for '#{job_name}'",
|
|
body: results.empty? ? 'No jobs to run today.' : results
|
|
).deliver_later
|
|
end
|