Ruby on rails sidekiq方法在sqlite3数据库中存储一些数据,而不是在redis中?
我目前正在从事一个rails项目,我被要求保存sidekiq workers的进度并将其存储,以便使用该应用程序的用户可以看到进度。现在我面临着这个难题,写一个文本文件还是保存在数据库中更好 如果是数据库,那么如何将其保存在模型对象中。我知道我们可以通过将信息发送到日志文件来存储工人的进度 给你的工人上课 包括Sidekiq::WorkerRuby on rails sidekiq方法在sqlite3数据库中存储一些数据,而不是在redis中?,ruby-on-rails,database,sidekiq,Ruby On Rails,Database,Sidekiq,我目前正在从事一个rails项目,我被要求保存sidekiq workers的进度并将其存储,以便使用该应用程序的用户可以看到进度。现在我面临着这个难题,写一个文本文件还是保存在数据库中更好 如果是数据库,那么如何将其保存在模型对象中。我知道我们可以通过将信息发送到日志文件来存储工人的进度 给你的工人上课 包括Sidekiq::Worker def perform logger.info { "Things are happening." } logger.debug { "Here
def perform
logger.info { "Things are happening." }
logger.debug { "Here's some info: #{hash.inspect}" }
end
因此,如果我想在数据模型中保存工作人员的进度,那么如何保存呢?您的线程标题说数据是非结构化的,但您的问题描述指出数据应该是结构化的。是哪一个?速度并不总是最重要的考虑因素,在你的情况下它似乎也不是很重要。最重要的考虑因素是如何使用数据。您的数据在未来的使用方式会改变吗?通常,具有适当模型的数据库是更好的答案,因为它允许灵活地满足未来的需求。它还允许其他客户端访问您的数据。您可以创建一个
作业
类,然后更新当前工作作业的某些属性
class Job < ActiveRecord::Base
# assume that there is a 'status' attribute that is defined as 'text'
end
然后在worker中,您将收到要处理的作业的id,然后检索并更新该记录
def perform(job_id)
job = Job.find job_id
job.status = "It's happening!"
job.save
end
def perform(job_id)
job = Job.find job_id
job.status = "It's happening!"
job.save
end