Rails + 延迟作业:存储自定义作业类的正确位置在哪里?

Posted

技术标签:

【中文标题】Rails + 延迟作业:存储自定义作业类的正确位置在哪里?【英文标题】:Rails + Delayed Job: Where is the correct place to store custom job classes? 【发布时间】:2012-06-08 01:38:33 【问题描述】:

我是 delay_job 的新手,我开始编写自己的“自定义作业”。每个自定义作业基本上只是一个常规的 ruby​​ 类,但我不确定这些自定义作业类通常存储在项目目录结构中的什么位置。

我在考虑 lib,但此时 lib 似乎是个垃圾抽屉:/(也许没关系)

谢谢!!

【问题讨论】:

我在/app 下创建了一个delayed_jobs 文件夹,但这只是个人喜好问题:) 我有一些在lib/,一些在app/models/,还有一些是其他类的内部类。我在这里只有一个非答案:把它们放在有意义的地方。 @apneadiving 那么您是否只需将您的课程命名为WhateverJob 我通常将它们命名为DelayedWhatever 【参考方案1】:

常见的方法是在app 文件夹下创建jobs 文件夹。但是您唯一应该关心的是它们是您的文件,因此请以您认为最适合自己的方式进行操作。

【讨论】:

选择这个作为答案,因为它在这里似乎很常见,这是我决定使用我的应用程序的方式。谢谢! 添加我忘了一件事......你可以将工作放在你的一个模型中(如果工作与该模型直接相关,则为ofc)并使用handle_asynchronously :method_name 谢谢!我实际上是在文档(或堆栈)的某个地方读到的! handle_asynchronously :my_methoddelay.my_method 的同义词

以上是关于Rails + 延迟作业:存储自定义作业类的正确位置在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中使用延迟作业取消预定作业?

Rails 3 延迟作业 - 升级到 Rails 3 会中断延迟作业任务

Rails/Rspec:测试延迟作业邮件

检查延迟的作业是不是在rails中运行

Rails 4.2 从活动作业中获取延迟的作业 ID

如何在 Rails 开发中忽略延迟作业查询日志记录