ale*_*nst 6 queue ruby-on-rails rails-activejob ruby-on-rails-5
有什么方法可以让我看到队列中还有多少(甚至可能检查每个作业?)作业?
在深入研究源代码之后,我发现:
ActiveJob::QueueAdapters::AsyncAdapter使用并发 Ruby线程池来调度和执行作业。
当您在配置中初始化适配器时,您会传递executor options,而这些选项恰好是initialize方法的
参数Concurrent::ThreadPoolExecutor类。
创建的Concurrent::ThreadPoolExecutor类实例具有以下方法,例如:
queue_length - 队列中等待执行的任务数。scheduled_task_count - 自构建以来已安排在池上执行的任务数。也就是说,我认为应该按照以下方式为您做一些事情:
ActiveJob::Base
.queue_adapter
.instance_variable_get(:@scheduler)
.instance_variable_get(:@async_executor)
.public_send(:queue_length)
Run Code Online (Sandbox Code Playgroud)
以上执行以下操作:
@scheduler,它指向Concurrent::ThreadPoolExecutor(Scheduler类的实例变量-@async_executor)queue_length,scheduled_task_count和其他人)虽然我没有测试它,所以一定要仔细检查错别字或其他任何东西。
| 归档时间: |
|
| 查看次数: |
3348 次 |
| 最近记录: |