2010-04-09 27 views
5

Đầu tiên - xin chào, đây là câu hỏi Stack Overflow đầu tiên của tôi vì vậy tôi sẽ cố gắng hết sức để giao tiếp đúng cách.Cách được khuyến nghị để quản lý các quy trình tập lệnh PHP liên tục?

Tiêu đề của câu hỏi của tôi có thể là một chút mơ hồ vì vậy hãy để tôi mở rộng khi nó ngay lập tức:

Tôi đang lên kế hoạch cho một dự án trong đó bao gồm việc đầu vào dữ liệu từ một số API "streaming", Twitter là một ví dụ. Tôi đã có một kịch bản cơ bản được mã hóa trong PHP chạy vô thời hạn từ dòng lệnh, lấy đầu vào từ API phát trực tuyến Twitter và thực hiện những điều rất cơ bản với nó.

Mục tiêu cuối cùng của tôi là có một số quy trình như vậy đang chạy (có thể được daemonized sử dụng lớp PE23 System Daemon) và tôi muốn quản lý chúng từ một số quy trình quản lý (cũng là tập lệnh PHP). Bằng cách quản lý tôi có nghĩa là các hoạt động cơ bản như dừng/bắt đầu và (quan trọng nhất) tự động khởi động lại một quá trình bị treo.

Tôi sẽ đánh giá cao bất kỳ gợi ý nào về cách tốt nhất để tiếp cận góc quản lý quy trình này. Một lần nữa, xin lỗi nếu câu hỏi này quá rộng - các mẹo về các dòng yêu cầu tập trung chặt chẽ hơn sẽ được đánh giá cao nếu cần. Cảm ơn bạn đã đọc và tôi mong được câu trả lời của bạn.

+0

FYI Tôi đã thiết lập "Giám sát", một ứng dụng Python để quản lý quy trình và điều này dường như thực hiện chính xác những gì tôi cần! Điều này được liên kết từ [Chạy tập lệnh php dưới dạng quy trình daemon] (http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) - được chỉ ra dưới đây bởi Pekka (cảm ơn lần nữa!) . Giám sát chính nó có thể được tìm thấy [ở đây] (http://supervisord.org/). – BigglesZX

Trả lời

3

Tôi nghĩ rằng cách khuyến khích của việc có quá trình liên tục không làm việc đó trong PHP ở tất cả;)

Nhưng đây là một số câu hỏi liên quan, nó trông giống như một số thông tin phản hồi có chứa một vài suy nghĩ tốt và kinh nghiệm trong việc này .

khác ở các search.

+0

Đó là siêu - liên kết thứ hai bạn đăng đã thực sự mang lại nhiều liên kết hữu ích! Đang nghiên cứu. Cảm ơn vì đầu vào của bạn :). – BigglesZX

2

này không hoạt động trong bối cảnh chạy một kịch bản PHP dai dẳng, nhưng Cron thực sự tiện dụng để chạy các script vào những thời điểm khác nhau và trong khoảng thời gian khác nhau. Thay vì có một kịch bản PHP đang chạy liên tục, dừng và bắt đầu các tập lệnh khác nhau, bạn có thể chạy tất cả chúng bằng cách sử dụng Cron tại một khoảng thời gian thích hợp.

+0

Tùy thuộc vào yêu cầu, đây là một cách tiếp cận tốt. Bạn cũng có thể sử dụng điều này để theo dõi quá trình liên tục; kiểm tra mỗi phút nếu nó vẫn chạy và tự động khởi động lại nếu nó không thành công. Phụ thuộc vào bao nhiêu thời gian chết bạn có thể mất, nhưng nó đọc nguồn cấp dữ liệu, sau đó mỗi phút âm thanh tốt. –

0

Cách bạn muốn làm điều đó là có thể nhưng sẽ phức tạp và tương đối khó duy trì.

Nếu bạn nhìn vào nó theo một cách khác, thay vì hấp liên tục, bạn có thể đang chunking trong dữ liệu đều đặn. Về mặt kỹ thuật, nó vẫn phát trực tuyến, đặc biệt là với các nguồn cấp dữ liệu như twitter.

Nếu một số nguồn cấp dữ liệu được bơm ra trong thời gian thực, bạn có thể bỏ lỡ một số dữ liệu trong đó có thể đây không phải là một lựa chọn cho bạn.

Dễ dàng hơn trong việc quản lý các quy trình bắt đầu và dừng và quản lý lượng dữ liệu nhỏ. Tất cả họ đều có thể kiểm tra cơ sở dữ liệu để kiểm soát dữ liệu và cập nhật trạng thái. Ngoài ra, sử dụng cron là một niềm vui thực sự.

Đó là cách tôi sẽ làm điều đó trong những ngày này.

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