延迟作业批量插入

sam*_*tte 5 sql optimization ruby-on-rails delayed-job

我正在我的heroku服务器上优化我的SQL查询,所以我可以根据一个特定的请求加快速度.现在我主要考虑尽可能将所有INSERT查询压缩到最少的查询中.

在我的代码的某些时候,我有这个:

  jobs.each do |j|
    Delayed::Job.enqueue j
  end
Run Code Online (Sandbox Code Playgroud)

我发现每次迭代都会向db发送一个BEGIN,INSERT,COMMIT.该jobs数组可以包含几个到几百个对象.我找了一种方法来批量插入延迟的作业但找不到任何东西.知道如何实现这一点吗?

sam*_*tte 1

User我最终将我的对象排入队列,它有一个jobs属性。所以1插入而不是jobs.length插入。