Class: Rrake::Raker
- Inherits:
-
Object
- Object
- Rrake::Raker
- Defined in:
- lib/rrake.rb
Instance Method Summary collapse
- #handle_received_message(message) ⇒ Object
-
#initialize ⇒ Raker
constructor
A new instance of Raker.
- #process_messages ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize ⇒ Raker
Returns a new instance of Raker.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rrake.rb', line 10 def initialize @awsAccessKeyId = ENV['AWS_ACCESS_KEY'] @awsSecretAccessKey = ENV['AWS_SECRET_ACCESS_KEY'] @rrakeQueue = ENV['RRAKE_QUEUE'] logfile = ENV['RRAKE_LOGFILE_PATH'].nil? ? STDOUT : File.open(ENV['RRAKE_LOGFILE_PATH'], 'a') @logger = Logger.new logfile @stop = false raise RuntimeError, "Please ensure AWS_ACCESS_KEY is set." if @awsAccessKeyId.empty? raise RuntimeError, "Please ensure AWS_SECRET_ACCESS_KEY is set." if @awsSecretAccessKey.empty? raise RuntimeError, "Please ensure RRAKE_QUEUE is set." if @rrakeQueue.empty? @logger.info "RRake is ready to do your remote bidding." end |
Instance Method Details
#handle_received_message(message) ⇒ Object
47 48 49 50 51 |
# File 'lib/rrake.rb', line 47 def () sns_msg = JSON.parse(.body) rake_cmd = "rake #{sns_msg['Message']}" @logger.info %x[ #{rake_cmd} ] end |
#process_messages ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/rrake.rb', line 29 def @logger.info "RRake awaiting first command." begin sqs = AWS::SQS.new(region: 'us-east-1', access_key_id: @awsAccessKeyId, secret_access_key: @awsSecretAccessKey) sqs.queues[@rrakeQueue].poll do || if block_given? yield , @options else () end return if @stop end rescue Exception => ex @logger.error "Something cause an SQS failure." @logger.error ex end end |
#stop ⇒ Object
25 26 27 |
# File 'lib/rrake.rb', line 25 def stop @stop = true end |