Sha256: a30d535acc328d3285a2b98473e1b4d328ce8a12abc9a568ff6dab186fb40918
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
# -*- coding: utf-8 -*- require 'tengine/job' # DSLを評価して登録されるルートジョブネットを表すVertex class Tengine::Job::RootJobnetTemplate < Tengine::Job::JobnetTemplate include Tengine::Job::Root include Tengine::Core::FindByName field :dsl_filepath, :type => String # ルートジョブネットを定義した際にロードされたDSLのファイル名(Tengine::Core::Config#dsl_dir_pathからの相対パス) field :dsl_lineno , :type => Integer # ルートジョブネットを定義するjobnetメソッドの呼び出しの、ロードされたDSLのファイルでの行番号 field :dsl_version , :type => String # ルートジョブネットを定義した際のDSLのバージョン def actual_class Tengine::Job::RootJobnetActual end def generate(klass = actual_class) result = super(klass) result.template = self result end def execute(options = {}) event_sender = options.delete(:sender) || Tengine::Event.default_sender actual = generate actual.with(safe: safemode(actual.class.collection)).save! result = Tengine::Job::Execution.with( safe: safemode(Tengine::Job::Execution.collection) ).create!( (options || {}).update(:root_jobnet_id => actual.id) ) event_sender.fire(:"start.execution.job.tengine", :properties => { :execution_id => result.id, :root_jobnet_id => actual.id, :target_jobnet_id => actual.id }) result end def find_duplication return nil unless self.new_record? self.class.find_by_name(name, :version => self.dsl_version) end class << self # Tengine::Core::FindByName で定義しているクラスメソッドfind_by_nameを上書きしています def find_by_name(name, options = {}) version = options[:version] || Tengine::Core::Setting.dsl_version where({:name => name, :dsl_version => version}).first end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tengine_job-1.1.0 | lib/tengine/job/root_jobnet_template.rb |