以编程方式处理 ActiveJob 队列
Work Off ActiveJob Queue Programmatically
使用 DelayedJob
,可以实例化一个 worker 以编程方式完成作业:
Delayed::Worker.new.work_off # => [num_succesess, num_failures]
ActiveJob 是否提供任何接口来做同样的事情?
目前没有,未来有计划吗?我不知道。 ActiveJob 目前仅提供用于创建新作业的界面,并以非常有限的方式在后台执行它。
ActiveJob目前只提供:
- 创建新作业并在后台进程中执行
- 指定必须使用的队列名称
- 能够重试作业(但您必须指定条件并计算在再次处理之前应等待的时间)
- 通过队列发送电子邮件的漂亮界面
未提供:
- 任何好的 API 例如。计算迭代次数并以某种方式使用它(它可能计划用于下一个版本,但它仍然是相当手动的https://github.com/rails/rails/blob/master/activejob/lib/active_job/core.rb#L70)
- 您也不能使用 delayed_job https://github.com/collectiveidea/delayed_job#hooks
中的任何挂钩方法
- 或在作业 https://github.com/collectiveidea/delayed_job#custom-jobs 中指定任何 delayed_job 参数(例如
max_attempts
、max_run_time
等。
现在真的很有限,但我很想知道这个 gem 的去向以及它将如何发展。
希望对您有所帮助。
使用 DelayedJob
,可以实例化一个 worker 以编程方式完成作业:
Delayed::Worker.new.work_off # => [num_succesess, num_failures]
ActiveJob 是否提供任何接口来做同样的事情?
目前没有,未来有计划吗?我不知道。 ActiveJob 目前仅提供用于创建新作业的界面,并以非常有限的方式在后台执行它。
ActiveJob目前只提供:
- 创建新作业并在后台进程中执行
- 指定必须使用的队列名称
- 能够重试作业(但您必须指定条件并计算在再次处理之前应等待的时间)
- 通过队列发送电子邮件的漂亮界面
未提供:
- 任何好的 API 例如。计算迭代次数并以某种方式使用它(它可能计划用于下一个版本,但它仍然是相当手动的https://github.com/rails/rails/blob/master/activejob/lib/active_job/core.rb#L70)
- 您也不能使用 delayed_job https://github.com/collectiveidea/delayed_job#hooks 中的任何挂钩方法
- 或在作业 https://github.com/collectiveidea/delayed_job#custom-jobs 中指定任何 delayed_job 参数(例如
max_attempts
、max_run_time
等。
现在真的很有限,但我很想知道这个 gem 的去向以及它将如何发展。
希望对您有所帮助。