- Timeout sau X giây, và giết chết quá trình (và tất cả các quá trình được mở) nếu thời gian chờ đạt được trước khi quá trình này kết thúc một cách duyên dáng .
- Đọc kết quả liên tục khi chạy.
- Làm việc với các quy trình sản xuất ra sản phẩm, sản phẩm không sản xuất và sản xuất ra, sau đó ngừng sản xuất (ví dụ: bị bị kẹt).
- Chạy trên Windows.
- Chạy trên Python 3.5.2.
Mô-đun con xử lý Python 3 có timeout được xây dựng và tôi cũng đã thử và tự thực hiện thời gian chờ bằng bộ đếm thời gian và sử dụng nhưng không hoạt động với đầu ra. readline()
đang chặn hay không? readlines()
chắc chắn là chờ đợi cho quá trình kết thúc trước khi phun ra tất cả các đầu ra, mà không phải là những gì tôi cần (tôi cần liên tục).
Tôi gần chuyển sang Node.js :-(
Sự cố với quá trình xuất chuẩn có thể đang trong quá trình con. Nếu bộ đệm stdout không được flushed thì python sẽ không bao giờ nhận được nội dung (và đó sẽ là cùng một ngôn ngữ bạn sử dụng). Một giải pháp có thể (chưa được kiểm tra) sẽ là trong 'subprocess.Popen' để gán stdout của con cho stderr. Thông thường stderr là unbuffered. – cdarke
Có, 'readline' sẽ chặn, chờ để nhận dòng kế tiếp, cũng như bất kỳ thứ gì khác đọc' sys.stdin'. Bạn có thể nói với Python để làm cho 'sys.stdout' bị vô hiệu hóa bằng cách chỉ rõ tùy chọn' -u' trên dòng lệnh. –
Không ai quan tâm nếu bạn chuyển sang node.js ... – martineau