Tôi chỉ muốn hiểu các phương pháp hay nhất để khởi động lại công nhân làm việc bị trì hoãn bằng cách sử dụng capistrano. Tôi có một nhóm công nhân xử lý các công việc dài (lên tới 10 phút).Việc làm bị trì hoãn khởi động lại + Thực tiễn tốt nhất của Capistrano
tôi đã đi qua hai kịch bản trong một triển khai trong khi công nhân đang xử lý-
1)
tôi dừng lại trì hoãn công nhân công việc trước khi triển khai: nhiệm vụ khởi động lại và bắt đầu họ một lần nữa sau khi triển khai: nhiệm vụ khởi động lại . Tuy nhiên, trong kịch bản này, nó sẽ không khởi động lại ứng dụng của tôi cho đến khi các công việc bị trì hoãn kết thúc (điều này có thể ok - nhưng kịch bản lệnh triển khai thực hiện ở đó cho đến khi công việc được thực hiện và có thể ngừng tất cả công nhân) trước khi tiếp tục với nhiệm vụ khởi động lại ứng dụng.
2) Tôi cũng đã cố gắng dừng/khởi động công nhân bị trì hoãn sau khi khởi động lại - nhưng điều này đã gây ra tất cả các loại phim truyền hình theo đó các tác vụ sẽ bị dừng mà không đợi bảng bị trì hoãn. PID không tồn tại!
Bất kỳ tùy chọn nào khác? Hoặc tôi buộc phải đợi như đã đề cập trong kịch bản 1.
Rất cám ơn.
Chỉnh sửa: Tôi vừa mới nhận ra với trường hợp 1 .. không chờ! Nhiệm vụ ngăn chặn sẽ giết chết công nhân của tôi ngay cả khi nó chưa kết thúc!
** [out] delayed_job: trying to stop process with pid 9630...
** [out] delayed_job: process with pid 9630 won't stop, we forcefully kill it...
** [out]
** [out] delayed_job: process with pid 9630 successfully stopped.
Đúng vậy. Trong/chia sẻ/pids/giống như tất cả các tập tin được chia sẻ khác (hình ảnh & nhật ký vv). – Jamsi