Có thể là sự cố khi tải tệp lớp công việc tùy chỉnh. Để kiểm tra điều đó, hãy thử cách này:
- Nhập bảng điều khiển đường ray
rails console --sandbox
.
- Đảm bảo bạn có công việc trong bảng
job = Delayed::Job.first
.
- Hãy thử
YAML.load(job.handler)
. Nếu bạn gặp lỗi như sau: ArgumentError: undefined class/module MyCustomClass
, có thể sự cố khi tải công việc tùy chỉnh của bạn
- Vẫn còn trong bảng điều khiển đường ray, hãy chạy
require 'My_Custom_Class
. Sau đó chạy lại lệnh YAML.load(job.handler)
. Nếu điều này trả về đối tượng thích hợp thì đó chắc chắn là một vấn đề tải lớp.
Để khắc phục sự cố, hãy tạo tệp config/initializers/custom.rb
và đặt nó vào require 'My_Custom_Class'
.
Sau đó, bạn sẽ có thể chạy rake jobs::workoff
và nhận được cái gì đó trông như thế này:
[Worker(host:my.host pid:5085)] Starting job worker
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ...
[Worker(host:my.host pid:5085)] No more jobs available. Exiting
Nguồn
2013-04-15 20:22:11
kết quả của 'RAILS_ENV = phát triển kịch bản/delayed_job status' là gì? – Ernest
Bạn đã thử chạy nó không có đá quý daemon? – Ernest
Gemfile.lock trình trạng thái daemon là một phụ thuộc bắt buộc nhưng tôi sẽ xóa sử dụng rõ ràng và thử nó. Lý do tôi đã làm điều đó đã cố gắng và buộc Daemonize sử dụng một phiên bản cụ thể (rất nhiều đề xuất StackOverflow xoay quanh việc sử dụng 1.0.10 cho daemon) vì tôi có daemon 1.1.4 trên hệ thống. Công việc – Aditya