我的项目模型:
class Project < ApplicationRecord
enum :number_of_samples, { once_per_day: 0, three_times_per_day: 1, hourly: 2 }, prefix: true
end
sidekiq worker:
class PagespeedWorker
include Sidekiq::Worker
def perform
puts 'Beginning Fetching...'
projects = ...
projects.each do |project|
sitemap = ...
sitemap.each do |url|
retrieve_data(...)
end
end
puts 'Fetching done!'
end
end
我希望能够运行worker,基于项目模型中的number_of_samples
。
它应该为每个项目运行,对于项目中的每个url,每天在number_of_samples
字段中指定的次数。
您可以使用number_of_samples
属性来循环
projects.each do |project|
project.number_of_samples.times do
sitemap_path = project.sitemap_path
sitemap = SitemapParseService.call(sitemap_path)
sitemap.each do |url|
retrieve_data(url, 'desktop', project.id)
retrieve_data(url, 'mobile', project.id)
end
end
end