Sha256: 7a0e6d88de4d55b8eca0d6f1054db6bcf3a56a6a55b80e26691774b2172f73b7
Contents?: true
Size: 1.57 KB
Versions: 7
Compression:
Stored size: 1.57 KB
Contents
require 'json' # Job public methods get turned into Lambda functions. # # Jets::Job::Base < Jets::Lambda::Functions # Both Jets::Job::Base and Jets::Lambda::Functions have Dsl modules included. # So the Jets::Job::Dsl overrides some of the Jets::Lambda::Functions behavior. module Jets::Job class Base < Jets::Lambda::Functions include Dsl # non-DSL methods include Helpers::KinesisEventHelper include Helpers::LogEventHelper include Helpers::S3EventHelper include Helpers::SnsEventHelper include Helpers::SqsEventHelper prepend Jets::ExceptionReporting::Process # Tracks bucket each time an s3_event is declared # Map of bucket_name => stack_name (nested part) cattr_accessor :s3_events # dont want this to be inheritable intentionally self.s3_events = {} class << self def process(event, context, meth) job = new(event, context, meth) job.send(meth) end def perform_now(meth, event={}, context={}) process(event, context, meth) end def perform_later(meth, event={}, context={}) if on_lambda? function_name = "#{self.to_s.underscore}-#{meth}" call = Jets::Commands::Call::Caller.new(function_name, JSON.dump(event), invocation_type: "Event") call.run else Jets.logger.info "INFO: Not on AWS Lambda. In local mode perform_later executes the job with perform_now instead." perform_now(meth, event, context) end end private def on_lambda? !!ENV['AWS_LAMBDA_FUNCTION_NAME'] end end end end
Version data entries
7 entries across 7 versions & 1 rubygems