90得票14回答
如何使用rspec测试ActionMailer的deliver_later方法

我正在尝试升级到Rails 4.2,并使用delayed_job_active_record。我没有为测试环境设置delayed_job后端,因为我认为这样工作任务将会立即执行。 我正在尝试使用RSpec测试新的“deliver_later”方法,但是我不确定该如何操作。 旧的控制器代码:Se...

52得票4回答
Sidekiq Rails 4.2使用Active Job还是Worker?有什么区别?

这是我第一次异步处理作业,我正在实现Sidekiq来进行应用程序的后台处理。我将使用它来发送提醒电子邮件和应用程序通知。我对于是否应该使用Active Job创建发送电子邮件的作业还是使用Sidekiq Worker发送电子邮件感到困惑。它们似乎做着相同的事情,而Rails 4.2 Activ...

45得票9回答
如何使用 Rspec 检查在 ActiveJob 中排队的内容

我正在一个Rails API应用中开发reset_password方法。当这个端点被访问时,会排队执行一个ActiveJob,该任务将发送一个请求到Mandrill(我们的事务性电子邮件客户端)。我目前正在尝试编写测试以确保在控制器端点被访问时正确地排队ActiveJob。def reset_...

45得票4回答
如何在Active Job(Rails 4.2)中安排定期任务?

我找到了这个 在Rails中安排一次性任务,但它只展示如何安排一次性任务。我有兴趣安排一个经常性的任务。 Delayed_job可以实现此功能。self.delay(:run_at => 1.minute.from_now) 我该如何在Rails 4.2/Active Job中实现类似的功能?

37得票6回答
禁用与Sidekiq一起使用的ActiveJob的自动重试功能

有没有办法在ActiveJob和Sidekiq中禁用自动重试? 我知道只使用Sidekiq的话,我们只需要将 `retry: false` 添加到 worker 类中即可禁用自动重试。sidekiq_options :retry => false 如此提到:https://github...

29得票2回答
Action Job/Mailer的`deliver_now`和`deliver_later`之间的区别

在Rails中与ActiveJob进行交互的常见模式是设置一个带有perform()方法的工作,该方法通过perform_now或perform_later异步调用。 对于邮件程序Mailers的特殊情况,您可以直接调用deliver_now或deliver_later,因为ActiveJob...

28得票4回答
使用ActiveJob在rspec中执行待处理的任务

我有这段代码用于使用Rspec测试ActiveJob和ActionMailer,但我不知道如何真正执行所有排队的作业。describe 'whatever' do include ActiveJob::TestHelper after do clear_enqueued_jo...

22得票6回答
如何在ActiveJob中为Sidekiq设置重试次数?

从Rails API中,我发现ActiveJob可以重试作业间隔:my_job_instance.enqueue my_job_instance.enqueue wait: 5.minutes my_job_instance.enqueue queue: :important my_job_i...

19得票6回答
如何在RSpec中正确测试ActiveJob的retry_on方法?

最近几天我一直在尝试测试这种方法,但没有成功。 另外一个我想做的事情是,在进行了最后一次重试后,rescue错误信息。 请查看我的评论和代码片段,这里也有retry_on的源代码以供参考。 以下是示例代码和测试: my_job.rb retry_on Exception, w...

18得票4回答
如何在Rails控制台中运行ActiveJob以进行调试?

我目前拥有一个ActiveJob,我使用Sidekiq进行排队。 我想要调试该作业,但是如果要查看我在其中编程的任何消息,我必须检查我的日志文件。 我觉得在Rails控制台中能够看到作业中puts消息会更方便。 但是当我在rails控制台中运行perform_later方法时,它只是将作业排队...