Sha256: 5c634be6447f86b595a8b3fcc50a0fd79b5dfdce190309d45fc5be534e39e768
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
module Souls class CloudScheduler < Thor desc "awake", "Set Ping Every 15min by Google Cloud Scheduler" method_option :url, default: "https://souls.souls.nl", aliases: "--url", desc: "Set URL" def awake app_name = Souls.configuration.app system( "gcloud scheduler jobs create http #{app_name}-awake --schedule '0,10,20,30,40,50 * * * *' --uri #{options[:url]} --http-method GET" ) end desc "sync_schedules", "Collect schedules from queries and sync with GCloud" def sync_schedules require("./app") Souls::Gcloud.new.config_set project_id = Souls.configuration.project_id region = Souls.configuration.region Queries::BaseQuery.all_schedules.each do |k, v| worker_name = FileUtils.pwd.split("/").last job_name = "#{worker_name}_#{k.to_s.underscore}" system("gcloud scheduler jobs delete #{job_name} -q >/dev/null 2>&1") system( <<~COMMAND) gcloud scheduler jobs create pubsub #{job_name} --project=#{project_id} --quiet --schedule="#{v}" --topic="#{k}" --attributes="" --message-body="#{k}" --location=#{region} COMMAND end end end end
Version data entries
4 entries across 4 versions & 1 rubygems