rails-activejob相关内容
我有这个代码来用 Rspec 测试 ActiveJob 和 ActionMailer我不知道如何真正执行所有排队的作业 describe 'whatever' do包括 ActiveJob::TestHelper做完之后clear_enqueued_jobs结尾它“应该"发送电子邮件期望(enqueued_jobs.size).to eq(1)结尾结尾 解决方案 以下是我解决类似问题的方法:
..
尝试升级到Rails 4.2,使用delayed_job_active_record.我没有为测试环境设置 delay_job 后端,因为我认为作业会立即执行. 我正在尝试使用 RSpec 测试新的“deliver_later"方法,但我不确定如何. 旧控制器代码: ServiceMailer.delay.new_user(@user) 新的控制器代码: ServiceMaile
..
有没有人能够在 Rails 4.2 中获得预定的工作? 我正在使用 resque,并且我正在尝试使用 resque-scheduler 来安排作业.我有一个已加载并运行调度程序的计划,甚至看起来它正在运行作业,但它没有做任何事情. resque-scheduler: [INFO] 2014-09-16T01:54:25-07:00: 开始resque-scheduler: [INFO] 2
..
知道如何从 ActiveJob 排队中获取 Delayed::Job id 吗?当我将作业排入队列时,我会返回一个带有 @job_id 的 ActiveJob::Base 实例,但该作业 ID 似乎是 ActiveJob 的内部.到目前为止,我最好的猜测是走下最近创建的工作: active_job_id = GenerateReportJob.perform_later(self.id).job
..
我有几个有很多孩子的模特.依赖破坏变得非常严重.任何人都知道将依赖破坏与活动工作联系起来的方法吗?或者,我唯一的选择是通过父模型上的回调来移除依赖的销毁和角色我自己的作业吗? 解决方案 您可以创建一个工作线程来异步销毁模型并将其删除.类似的东西: class ComplexModelDeletion 模型可能是这样的: 类模型 然后,每当您需要终止此模型的实例时,您可以调用 Mo
..
使用Payola-Payments Gem 处理Stripe Payments,需要为你的交易设置Background Worker.使用ActiveJob设置Background Worker后,点击pay时报错. 这是它: 注意:我使用的是 Windows 环境(Windows 8),我相信这里有什么地方做错了.在我的视图上呈现错误警报: 这似乎花费了太长时间.请联系支持人员
..
我需要在后台标记一组消息(我正在使用 delay_job gem),因为在前台需要一些时间.所以我创建了一个 ActiveJob 类 MarkMessagesAsReadJob,并将它传递给 user 和 messages 变量以标记所有为 user 读取的 messages. //在控制器中传递值@messages = @conversation.messagesMarkMessagesAsR
..
在 ActiveJob 中执行以下操作的优缺点是什么: 选项 A: //控制器MyJob.perform_later(object.id)//my_job.rb定义执行(object_id)object = Object.find(object_id)//做东西结尾 选项 B: //控制器MyJob.perform_later(对象)//my_job.rb定义执行(对象)//做东西结尾
..
我正在尝试使用 Rails 4.2 的 Deliver_later 方法设置联系表单.但是,我只能让deliver_now 工作,因为deliver_later 试图序列化我的对象并且每次都失败. 这是我的设置: messages_controller.rb class MessagesController 零,'主题' =>零,'电子邮件' =>零,'身体' =>零}结尾结尾 我
..
我在 ActiveJobs 的猴子修补部分遇到了问题.我在 config/initializers/extensions/arguements.rb 中有以下代码 模块 ActiveJob模块参数TYPE_WHITELIST = [ 日期、日期时间、时间、NilClass、Fixnum、浮点数、字符串、TrueClass、FalseClass、Bignum]结尾结尾 基本上,我正在尝试添加对日
..
有没有办法禁用 ActiveJob 和 Sidekiq 的自动重试? 我知道只有使用 Sidekiq,我们只需要把 sidekiq_options :retry =>错误的 正如这里提到的:https://github.com/mperham/sidekiq/wiki/错误处理#configuration 但它似乎不适用于 ActiveJob 和 Sidekiq. 我也知道这
..
基本上,测试配置设置了它在 Rails 4 中的工作方式(将传递方法设置为测试等),除了我已替换的不推荐使用的选项之外,邮件仅使用 Deliver_now 发送,而不是 Delivery_later.Deliver_later 在开发环境中工作,即使两个环境的配置相同. 测试环境邮件程序配置: config.action_mailer.delivery_method = :testconf
..
我发现了这个在 Rails 中安排一次性工作但这仅显示如何安排一次.我对安排定期工作感兴趣. Delayed_job 有这个 self.delay(:run_at => 1.minute.from_now) 如何在 Rails 4.2/Active Job 中做类似的事情? 解决方案 类似于 rab3 的回答,由于 ActiveJob 支持回调,我正在考虑做类似的事情 clas
..
如果 ended_at 小于今天,我会调用一个方法.出于某种原因,即使我在即将损坏的那一刻抛出绑定撬并手动调用该方法并且它工作正常,我也会不断失败.但是,如果我只是让规范测试自己运行,我仍然会失败. 我的工作: class RemoveOldEventsFromAlgoliaJob
..
我希望我的后台作业针对某些标记测试内联运行.我可以通过用 perform_enqueued do 包装测试来实现,但我希望能够用元数据标记它们,如果可能的话,它会自动发生. 我尝试了以下方法: 它“也完成了工作中的所有事情",perform_enqueued: true do结尾config.around(:each) 做 |例子|如果 example.metadata[:perform_
..
过去几天我一直在尝试测试这种方法,但没有成功. 我希望能够做的另一件事是救援在最后一次重试尝试后出现的错误. 请查看下面我的评论和代码片段. retry_on 的源代码也在这里用于上下文. 这是示例代码和测试: my_job.rbretry_on 异常,等待:2.hours,尝试:3 做 |作业,异常|# job.exceptions == 3 之后的某种救援# 然后通
..
我正在 Rails API 应用程序中研究 reset_password 方法.当这个端点被命中时,一个 ActiveJob 会排队,它将向 Mandrill(我们的交易电子邮件客户端)发出请求.我目前正在尝试编写测试以确保在命中控制器端点时 ActiveJob 正确排队. def reset_password@user = User.find_by(email: params[:user][:
..
如果成功保存记录,我有一个创建操作调用 ActiveJob. def 创建@object = Object.new(importer_params)response_to do |格式|如果@object.saveMyJob.perform_later(@object.id)format.html { redirect_to @object,注意:t('.notice') }别的format.h
..
尝试实现某种取消作业功能.为了 用 Resque 销毁作业,需要传递给它的特定参数.不过,我似乎错误地传递了意外信息. 我只希望参数值位于外括号内.我正在创建这样的工作: PhysicalServerProvisionJob.perform_later('123') 我希望能够: Resque::Job.destroy(:default, PhysicalServerProvision
..
我使用的想法与导入 csv 和 excel Railscast 但由于该集中的标准代码需要一些时间来处理(使用 ActiveRecord 为文件中的每一行创建一个新记录)我在 Heroku 上超时并希望将导入过程移至后台作业. 我未能成功将文件变量(类型为 ActionDispatch::Http::UploadedFile)发送到作业,因此我发送了 file.original_filena
..