Mục tiêu
Mục tiêu cơ bản của tôi là để đạt được trigger asynchornous trong PHP sử dụng Yii2 Web ApplicationPHP Chạy việc làm nền mà không cần chờ cho chế độ phản ứng không Chặn Giống như kích hoạt loại
tôi cần phải chạy các công việc php mẻ nhưng tôi không muốn chờ trong trình duyệt /cron để thực hiện công việc. Để chạy công việc tôi cần phải sử dụng tập tin khác nhau của ứng dụng của tôi như
http://myapp/foojob.php
Các foojob.php nên không đồng bộ gọi nhiều trường hợp php [Mỗi trường hợp mang một công việc] dựa trên các công việc availble trong tay. Giới hạn thời gian của cuộc gọi (foojob.php) nhỏ hơn 60 giây.i cần kích hoạt các phiên bản php mới trước khi vượt quá giá trị thời gian chờ.
tôi giới thiệu & Cố gắng
- curl_multi - i could't tìm ra chế độ không chặn trong đó.
- fsock_open - Điều này có thể bằng cách gửi Kết nối: Gần cuộc gọi (Nhưng mở khóa fsock không phải lúc nào cũng khả dụng trên nhiều máy chủ lưu trữ được chia sẻ hoặc không hoạt động bình thường). Bạn có thể gợi ý cho tôi bất kỳ giải pháp đáng tin cậy nào với việc vận chuyển fsock không?
- pcntl_exec -Tôi chưa thử trong thời gian thực nhưng thống kê thời gian thực cho thấy 45% máy chủ đã tắt chức năng này. Tôi không biết lý do tại sao.
- vận chuyển luồng - Tôi không biết cách hoạt động?
Câu hỏi của tôi:
- Non chặn async yêu cầu Có giải pháp nào có thể đã tồn tại trong git để đạt được trong PHP?
- Hãy tham khảo nếu có bất kỳ phương tiện vận chuyển nào khác mà tôi cần xem xét
- có cơ chế chuyển mạch thông minh nào (curl/fsock) dựa trên môi trường không?
Edit:
Ứng dụng này là sản phẩm tự lưu trữ. nó sẽ hoạt động trên các dịch vụ lưu trữ khác nhau. Shared Hosting sẽ không cho phép/Cung cấp bất kỳ tiện ích mở rộng bên ngoài nào cho khách hàng của họ.
Bạn hãy nhìn vào [php-cứu] (https://github.com/chrisboulton/php-resque)? –
@old_mountain cảm ơn. tôi đã có một cái nhìn. Nó cần redis Redis 2.2+. Không có bất kỳ sự phụ thuộc khó khăn nào sẽ tốt hơn cho trường hợp của chúng ta? – Babu
Bạn đã kiểm tra 'ignore_user_abort()' chưa? với điều đó bạn có thể sử dụng 'nohup' nếu bạn có các hộp unix để làm cho nó hoạt động. – Gogol