ruby-on-rails - 测试 rails 中 delayed_job 插件的优先级

标签 ruby-on-rails ruby delayed-job

我想测试优先级在 delayed_job 插件中是如何工作的。我正在使用来自 railscasts 的 mailit 应用程序.我想我想发送 100 条高优先级的消息和 100 条低优先级的消息。我想看看优先级较低的消息是否会按时传递或被搁置。

我怎样才能做这样的测试。

最佳答案

创建这样的测试应该不是什么大问题。生成 100 封高优先级的电子邮件,然后生成 100 封低优先级的电子邮件。或相反亦然。在您检查数据库以查看每个工作都在那里并已说明之前,请不要启动您的工作人员。启动您的 worker 并观察作业是如何执行的——并且以正确的顺序执行。请记住 d_j 中的优先级是递增的,因此优先级 1 高于 10。

现在,200 个职位并不多。您的员工可能会很快执行所有这些操作。如果你真的想测试你的低优先级电子邮件是否仍然被发送,你可能必须依赖你的队列中还有什么——前提是你使用 d_j 不仅仅是电子邮件。我建议用至少几千个作业填充队列——或者任何你能想到的“最坏情况”——并以此运行测试。如果非电子邮件作业的优先级高于低优先级电子邮件,则它们比 100 个高优先级作业更有可能影响电子邮件的发送。

关于ruby-on-rails - 测试 rails 中 delayed_job 插件的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399293/

相关文章:

ruby-on-rails - 使用回形针上传大文件时JVM报错

mysql - 如何使用 Rails Controller 页面将数据插入具有多对多关系的联接表

ruby - "prototyping"在实践中意味着什么?

ruby-on-rails-4 - Rails 4 - 延迟作业 - 是否可以在执行方法中知道作业 ID?

java - android 计划的作业是否在应用程序升级后仍然存在?

ruby-on-rails - 与 rails 3 一起使用的作业队列替代方案?

javascript - Angular JS : Why angular-filters errors with Unknown provider: defaultFilterProvider <- defaultFilter?

ruby-on-rails - Ruby on Rails 未定义的 simple_form_for 方法

jquery - AngularJS (Blueimp Jquery-file-uploader) 与 Rails + Devise - 已完成 401 未经授权

ruby-on-rails - Rails 4 和 Rspec - 生成 Controller 测试