21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/legion/extensions/tasker/helpers/find_subtask.rb', line 21
def find_subtasks(trigger_id:, **)
sql = "
SELECT
`relationships`.`id` as `relationship_id`, `debug`,
`chain_id`, `allow_new_chains`, `delay`, `trigger_id`, `action_id`, `conditions`, `transformation`,
`runners`.`namespace`, `runners`.`id` as `runner_id`, `runners`.`queue`,
`runners`.`namespace` as runner_class,
`functions`.`id` as `function_id`, `functions`.`name` as `function`,
`extensions`.`exchange`,
CONCAT( `exchange`, '.',`queue`,'.',`functions`.`name`) AS runner_routing_key
FROM `legion`.`relationships`
INNER JOIN `legion`.`functions` ON (`functions`.`id` = `relationships`.`action_id`)
INNER JOIN `legion`.`runners` ON (`functions`.`runner_id` = `runners`.`id`)
INNER JOIN `legion`.`extensions` ON (`runners`.`extension_id` = `extensions`.`id`)
WHERE `relationships`.`trigger_id` = #{trigger_id} AND `relationships`.`active` = 1;
"
cache = Legion::Cache.get(sql)
return cache unless cache.nil?
results = Legion::Data::Connection.sequel.fetch(sql).all
Legion::Cache.set(sql, results, 5) if results.is_a?(Array) && results.count.positive?
results
end
|