Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails sidekiq方法在sqlite3数据库中存储一些数据,而不是在redis中?_Ruby On Rails_Database_Sidekiq - Fatal编程技术网

Ruby on rails sidekiq方法在sqlite3数据库中存储一些数据,而不是在redis中?

Ruby 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

我目前正在从事一个rails项目,我被要求保存sidekiq workers的进度并将其存储,以便使用该应用程序的用户可以看到进度。现在我面临着这个难题,写一个文本文件还是保存在数据库中更好

如果是数据库,那么如何将其保存在模型对象中。我知道我们可以通过将信息发送到日志文件来存储工人的进度

给你的工人上课 包括Sidekiq::Worker

  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