有沒有一種方法可以查看多少(甚至可能檢查每個作業?)作業是否還在隊列中?使用ActiveJob列出排隊的任務AsyncAdapter
1
A
回答
1
經過一番挖掘到source code這裏是我發現:
ActiveJob::QueueAdapters::AsyncAdapter
使用Concurrent Ruby線程池來調度和執行工作。
當你初始化配置適配器,您通過執行選項,這反過來又碰巧是參數 Concurrent::ThreadPoolExecutor
類initialize
方法。 Concurrent::ThreadPoolExecutor
類的
創建的實例具有這樣的方法,如:
queue_length
- 等待執行隊列中的任務的數量。scheduled_task_count
- 自構建以來計劃在池中執行的任務數。
這麼說,我覺得這些方針的東西應該爲你做:
ActiveJob::Base
.queue_adapter
.instance_variable_get(:@scheduler)
.instance_variable_get(:@async_executor)
.public_send(:queue_length)
上述聲明如下:
- 讓你的適配器
- 獲得其instance_variable
@scheduler
,那指向 Concurrent::ThreadPoolExecutor
的實例(的實例變量類 -@async_executor
)- 上,你實際上可以調用的方法,上述(
queue_length
,scheduled_task_count
和others)
雖然我沒有測試它描述的,所以一定要仔細檢查拼寫錯誤或任何責任。
+0
好吧,我剛試過。它似乎沒有工作。它總是返回0。 – alexandernst
+0
@alexandernst認爲它,它返回一個整數,因此我敢肯定它在某種意義上工作,它調用正確的方法。你嘗試過其他方法嗎?另外,你是否確定,它不應該返回0? –
相關問題
- 1. 使用BlockingCollection排隊任務
- 2. 使用任務隊列時出錯
- 3. 排隊任務jQuery
- 4. 如何使用Rspec檢查在ActiveJob中排隊的內容
- 5. 可以使用Rails的ActiveJob來排隊一段代碼嗎?
- 6. 排隊的任務。運行
- 7. 使用任務隊列來安排在appengine python
- 8. 扭曲CPU隊列任務的隊列
- 9. 使用python的GAE中的延期任務的任務隊列
- 10. 排隊調度任務
- 11. RxJS排隊依賴任務
- 12. 工作過ActiveJob隊列編程方式
- 13. 在任務隊列
- 14. 任務隊列 - PHP
- 15. 任務隊列java
- 16. C#隊列任務
- 17. 使用Task.Factory.StartNew執行任務隊列
- 18. 服務:任務隊列
- 19. 用回調排隊幾個任務
- 20. wp8的任務隊列?
- 21. 任務隊列的Java API
- 22. 任務隊列的Java
- 23. Coldfusion的任務隊列
- 24. 減速機任務隊列溢出並完成任務
- 25. 任務隊列和非冪等任務
- 26. 任務隊列:殭屍任務
- 27. 的iOS排隊上傳任務
- 28. 刪除ThreadPoolExecutor的所有排隊任務
- 29. 構建隊列服務 - 序列化任務供以後使用
- 30. Azure WebJob服務總線重新排隊隊列出現錯誤
嘿,讓我知道下面的建議是否爲你工作,如果你已經嘗試過了 - 我很好奇,但還沒有片刻測試它:)(可能在週末) –
同樣在這裏:) Couldn今天不測試。讓我看看我明天早上能不能明白;) – alexandernst