class Farmstead::Manage::Service

Public Instance Methods

check_sources() click to toggle source

Checks for any new sources to be processed Adds them to the message queue

# File lib/farmstead/pipeline/manage.rb, line 41
def check_sources
  sources = @mysql.query("SELECT * FROM sources WHERE pickedup = 'false'")
  return false if sources.count.zero?
  sources.each do |source|
    json = source.to_json
    sourceid = get_from_json(json, 'id')
    # import_source(json, sourceid)
    write_message(json, topic: 'Wood')
    mark_pickedup(sourceid)
  end
end
import_source(sourcehash, sourceid) click to toggle source

Imports source data as a Hash into MySQL DB

# File lib/farmstead/pipeline/manage.rb, line 67
def import_source(sourcehash, sourceid)
  sourcehash
end
regular_tasks() click to toggle source

Checks for any processing tasks that need to be completed at speicifc times

# File lib/farmstead/pipeline/manage.rb, line 55
def regular_tasks
  tasks = @mysql.query("SELECT * FROM tasks WHERE processed = 'false'")
  return false if tasks.count.zero?
  tasks.each do |task|
    json = task.to_json
    taskid = get_id(task)
    write_message(json, topic: 'Wood')
    mark_pickedup(taskid)
  end
end
run() click to toggle source
# File lib/farmstead/pipeline/manage.rb, line 25
def run
  puts "Starting Manager"
  # Cycle thru sources, pull config and pass to Kafka
  sources = Farmstead::DB.select_all("sources")
  puts sources.inspect
  sources.each do |source|
    module_name = source[:module]
    puts module_name
    @producer.produce(module_name, topic: "Field")
    @producer.deliver_messages
    Farmstead::DB.mark_pickedup(module_name)
  end
end