Làm thế nào để bạn thông báo cho một Công việc cụ thể bị hoãn :: Chạy trong bảng điều khiển?


95

Vì một số lý do, Delayed :: Job's đã quyết định xếp hàng nhưng không xuất hiện bất cứ điều gì mặc dù tôi đã khởi động lại nó nhiều lần, thậm chí giết -9'd nó và khởi động lại nó. Nó sẽ không chạy bất kỳ công việc nào.

Tôi có thể, trong / console, chỉ định một công việc cụ thể và yêu cầu nó hoạt động không?

Ví dụ:.. Delayed::Job.find(x).run


Câu trả lời:


130

trả lời cách chạy công việc cụ thể từ bảng điều khiển:

Delayed::Job.find(x).invoke_job

nhưng bạn phải nhớ rằng nó sẽ không chạy bất kỳ thứ gì khác như phá hủy công việc đã hoàn thành, v.v. chỉ đang chạy công việc / nhiệm vụ.


4
Đọc kỹ chú thích của tác giả câu trả lời: "nó sẽ không chạy bất kỳ thứ gì khác như phá hủy công việc đã hoàn thành" . Tôi nói như vậy bởi vì tôi đã không đọc nó và tôi đang phát điên lên. Kiểm tra câu trả lời của @ DavidTuite
fguillen

163

Bạn cũng có thể làm như thế này:

Delayed::Worker.new.run( Delayed::Job.find(x) ) 

Đẹp! Cảm ơn vì điều đó!
Chuyến đi

26
đây là câu trả lời tốt nhất, nó loại bỏ một công việc sau khi hoàn thành. Cảm ơn
m4risU

12
Delayed :: Worker.new.run (Delayed :: Job.find (id))
mrt

Thông minh. Đồng ý với @ m4risU.
Chris Scott

Tôi đồng ý với bình luận @mrt 's, bạn nên chắc chắn rằng bạn chạy các công việc đúng
Jonny

0

Trên Heroku, tôi có một công việc "bị mắc kẹt" và chỉ phải chạy heroku restartcho nhân viên / công việc bắt đầu lại.


Cảm ơn vì nhận xét tích cực ;-) Có thể là người hỏi - hoặc những người đến câu hỏi này - đã gặp sự cố trên Heroku.
rassom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.