2009-03-01 30 views
11

Tôi đã viết một tập lệnh lấy dữ liệu từ solr cho ngày nào trong khoảng thời gian đã chỉ định và tôi chạy tập lệnh bằng cách sử dụng cron hàng ngày.Làm cách nào để tăng thời gian chờ cho cronjob/crontab?

Vấn đề là cronjob không hoàn thành nhiệm vụ. Nếu tôi chạy kịch bản theo cách thủ công (trong cùng khoảng thời gian), nó hoạt động tốt. Nếu tôi giảm khoảng thời gian được chỉ định, tập lệnh cũng chạy từ cron. Vì vậy, tôi đoán là cronjob là thời gian ra trong khi chạy kịch bản là có rất nhiều dữ liệu để xử lý.

Làm cách nào để tăng thời gian chờ cho cronjob?

PS - 1. Tập lệnh tôi đang chạy trong cronjob là tập lệnh bash chạy tập lệnh python.

Trả lời

5

Bạn có thể thử sử dụng ulimit -t [số giây] trong cronjob trước khi chạy tập lệnh.

18

Lưu ý rằng giải pháp ulimit -t được đề xuất sẽ giới hạn lượng thời gian CPU được sử dụng, không phải là lượng thời gian thực đã trôi qua.

Từ bash manpage:

ulimit [-HSTabcdefilmnpqrstuvx [limit]] 
... 
-t  The maximum amount of cpu time in seconds 

Và quan trọng hơn, cron không áp đặt bất kỳ timeouts ở nơi đầu tiên. Nó đơn giản là khởi động bất cứ tiến trình nào và tiếp tục.


BTW: Xin lỗi vì đã đăng câu trả lời này nhưng tôi chưa có đủ điểm để thêm nhận xét.

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