我需要执行一项工作,其中每次创建订单时都会将其分配给供应商,如果供应商不接受订单并在指定时间内更新状态,则订单将自动拒绝并将状态更新为拒绝。我面临的问题是,作业会转到延迟队列,如 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
我正在尝试编写一个程序,将字符串中的所有大写字符转换为小写和小写字符为大写.例如,如果字符串是"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)
但是我可以评估这个程序是非常错误的.我仍然是一个新手学习者.如果我的解决方案程序非常错误,请原谅我.请帮助我找到一个正确而简单的解决方案.
我有一个 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 %>  
<%= f.link_to_add …Run Code Online (Sandbox Code Playgroud) 我已经编写了一段代码,需要对其进行重构。
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)
有人能帮忙吗?