lib/wayfarer/cli/job.rb in wayfarer-0.4.0 vs lib/wayfarer/cli/job.rb in wayfarer-0.4.1
- old
+ new
@@ -9,26 +9,28 @@
option :batch, type: :string, default: SecureRandom.uuid
def perform(job, url)
load_environment
mock_redis if options[:mock_redis]
- url = URI(url)
+ url = Addressable::URI.parse(url)
job = job.classify.constantize.new
task = Wayfarer::Task.new(url, "tmp")
job.arguments.push(task)
job.perform(task)
GC.new(job).run
+
+ free_agent_pool
end
desc "enqueue JOB URL",
"Enqueue JOB with URL"
option :batch, type: :string, default: SecureRandom.uuid
def enqueue(job, url)
load_environment
mock_redis if options[:mock_redis]
- url = URI(url)
+ url = Addressable::URI.parse(url)
job = job.classify.constantize
job.crawl_later(url, batch: options[:batch])
end
desc "execute JOB URL",
@@ -39,20 +41,22 @@
option :max_threads, type: :numeric, default: 1
def execute(job, url)
load_environment
mock_redis if options[:mock_redis]
- url = URI(url)
+ url = Addressable::URI.parse(url)
job = job.classify.constantize
job.queue_adapter = ActiveJob::QueueAdapters::AsyncAdapter.new(min_threads: options[:min_threads],
max_threads: options[:max_threads])
scheduler = job.queue_adapter.instance_variable_get(:@scheduler)
executor = scheduler.instance_variable_get(:@async_executor)
job.crawl_later(url, batch: options[:batch])
sleep(1) while executor.scheduled_task_count > executor.completed_task_count
+
+ free_agent_pool
end
end
end
end