2013-08-09 16 views
18

Tôi có một tác vụ nền chạy bằng cách sử dụng delay_job.Làm cách nào để gỡ lỗi mã chạy trong tác vụ delay_job trong bảng điều khiển IRB?

Tôi có thể thấy rằng nó chạy từ các câu lệnh ghi nhật ký. Nó dường như không có kết quả chính xác, so với chạy nó ở phía trước, vì vậy tôi muốn gỡ lỗi nó trong bảng điều khiển IRB.

Tôi đang chạy các tác vụ chạy nền với

rake jobs:work 

và nó không gây ra các tuyên bố gỡ lỗi.

Tôi làm cách nào để tải trình gỡ lỗi?

Trả lời

31

Bắt đầu một đường ray tiêu chuẩn giao diện điều khiển

ruby script/console 

Và bắt đầu một nhân viên bên đây, điều này sẽ xem và kích hoạt các tuyên bố gỡ lỗi.

worker = Delayed::Worker.new 
worker.start 
+3

trì hoãn :: Worker.new.start – Gaston

+0

ray bó exec Runner "Chậm :: Worker.new.start" –

+0

này tuyệt vời. Tất cả thời gian này tôi đã ở trong bóng tối trên đầu ra giao diện điều khiển bằng cách sử dụng một công việc bị trì hoãn. Cảm ơn bạn! – gregblass

12

Tôi sử dụng pry làm bảng điều khiển và trình gỡ lỗi từ xa của mình. Pry website here, Pry rails gem here. Trong mã của bạn, bạn thêm các câu lệnh binding.pry để ứng dụng của bạn ngừng thực thi và mở bảng điều khiển. Nó hoạt động tương tự với delay_job như nó với ứng dụng đường ray của bạn. Hãy chắc chắn rằng bạn đang chạy delay_job ở phía trước mặc dù, do đó, nó vẫn còn gắn liền với thiết bị đầu cuối. Ví dụ, bắt đầu delayed_job với:

rake jobs:work 
+5

Trên thực tế cần lưu ý rằng nếu bạn đã thêm lệnh breakpoint (binding.pry) * sau * bạn đã chạy hàng đợi, thì trước tiên bạn phải dừng & khởi chạy lại hàng đợi bằng lệnh rake: làm việc sao cho điểm ngắt được tính đến – Mapad

Các vấn đề liên quan