小编Mah*_*sta的帖子

使用 Resque-scheduler 和 redis 时,在上述延迟时间过后,延迟作业未进入主作业队列

我需要执行一项工作,其中每次创建订单时都会将其分配给供应商,如果供应商不接受订单并在指定时间内更新状态,则订单将自动拒绝并将状态更新为拒绝。我面临的问题是,作业会转到延迟队列,如 resque Web 视图中所示,但在延迟失效的指定时间后不会移动到主队列

这是我的工作。

  class AutoRejectionJob < ActiveJob::Base
    queue_as :auto_rejection_queue

   def perform(*args) 
    assignment_id = args[0]
    order_assignment = Estamps::Assignment.find(assignment_id)
    if order_assignment.status_id == 1 || order_assignment.status_id == nil
      order_assignment.status_id = 3
      order_assignment.save!
    end
   end
  end         
Run Code Online (Sandbox Code Playgroud)

在我的作业模型中:

class Estamps::Assignment < ActiveRecord::Base
 after_create :enqueue_check_status 

def enqueue_check_status #  
  AutoRejectionJob.set(wait: 2.minutes).perform_later(self.id)
end    
end
Run Code Online (Sandbox Code Playgroud)

这里,一旦创建了分配记录,其状态通常在创建时保持为“已分配”。现在,从创建之日起,如果用户未在指定时间内更新状态,则作业必须自动将状态更新为“已拒绝”。

我也尝试过这个方法。

def enqueue_check_status 
  Resque.enqueue_at_with_queue('auto_rejection_queue', 2.minutes.from_now, 
   AutoRejectionJob, assignment_id: self.id)  
end
Run Code Online (Sandbox Code Playgroud)

它们都将作业发送到resque延迟队列,但不将作业带到主队列执行。

自动拒绝作业在延迟作业列表中排队

此外,当我单击延迟作业的所有计划链接时,作业的时间戳显示没有列出要计划的作业

延迟列表中第一个作业的所有时间表

我被这个问题困扰了将近两周。请帮忙!如果需要更多信息,请告诉我。和这个人度过了一段艰难的时光。

ruby-on-rails delayed-job redis resque-scheduler rails-activejob

5
推荐指数
1
解决办法
2363
查看次数

如何将小写字符串转换为大写字母,反之亦然?

我正在尝试编写一个程序,将字符串中的所有大写字符转换为小写和小写字符为大写.例如,如果字符串是"abcdE",它将在转换"ABCDe"后返回.这是我到目前为止所尝试的

class String
    def is_upper?
        self == self.upcase
    end

    def is_lower?
        self == self.downcase
    end
end

s = gets.chomp

if s.length <= 100
    a = s.split(//)
    b, c = Array.new
    a.each do |m|
        if m.is_upper? 
            b.push(m.downcase)
        end
        if m.is_lower?
            b.push(m.upcase)
        end
    end
    c = b.join
end
Run Code Online (Sandbox Code Playgroud)

但是我可以评估这个程序是非常错误的.我仍然是一个新手学习者.如果我的解决方案程序非常错误,请原谅我.请帮助我找到一个正确而简单的解决方案.

ruby

2
推荐指数
1
解决办法
4194
查看次数

Collection Select 在 Rails 4 的编辑表单中不显示所选值

我有一个 Vendor 模型、一个 Product 模型和一个 VendorProduct 模型,具有以下关联

class Vendor < ActiveRecord::Base
  has_many :vendor_products
  has_many :products, through: :vendor_products
end

class Product < ActiveRecord::Base
  has_many :vendor_products
  has_many :vendors, through: :vendor_products
end

class VendorProduct < ActiveRecord::Base
  belongs_to :vendor
  belongs_to :product
end
Run Code Online (Sandbox Code Playgroud)

我正在使用nested_form gem 在我的供应商 _form.html.erb 页面上显示产品的下拉集合选择选项

<%= nested_form_for(@vendor) do |f| %>
  <% if @vendor.errors.any? %>
      :
      :
      :
    <%= f.fields_for :vendor_products do |vproducts| %>
      <%=  render 'product_fields', :f => vproducts %> 
      <%= vproducts.link_to_remove "Remove this Product"  %>
    <% end %> &nbsp
    <%= f.link_to_add …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails nested-forms collection-select

1
推荐指数
1
解决办法
4183
查看次数

有没有办法在Ruby中重构以下代码

我已经编写了一段代码,需要对其进行重构。

Reviewing.where(reviewing_status_condition(employee_ids)).group(:employee_id).count.map{ 
|employee_id, reviewings_count_per_employee|
    employee_id if reviewings_count_per_employee >= @cycle.min_required_anon_feedback
  }.compact
Run Code Online (Sandbox Code Playgroud)

有人能帮忙吗?

ruby ruby-on-rails-5

0
推荐指数
1
解决办法
68
查看次数