Chúng tôi đang chạy PHP trên máy chủ Windows (một nguồn của nhiều vấn đề thực sự, nhưng việc di chuyển không phải là một tùy chọn hiện tại). Có một vài điểm mà hành động do người dùng thực hiện sẽ cần phải khởi động một vài điều mất một thời gian và người dùng không cần phải biết liệu họ có thành công hay không thành công, chẳng hạn như gửi email hoặc đảm bảo một số tài khoản của bên thứ ba được cập nhật. Nếu tôi có thể chỉ cần ngã ba với pcntl_fork()
, điều này sẽ rất đơn giản, nhưng các chức năng PCNTL không có sẵn trong Windows.Phân nhánh bằng PHP trên Windows
Có vẻ như gần nhất tôi có thể nhận được là làm điều gì đó của thiên nhiên này:
exec('php-cgi.exe somescript.php');
Tuy nhiên, đây sẽ là xa phức tạp hơn. Các hành động tôi cần phải khởi động dựa vào rất nhiều ngữ cảnh đã tồn tại trong tiến trình đang chạy; để sử dụng ví dụ trên, tôi cần phải tìm ra dữ liệu cần thiết và cung cấp cho tập lệnh mới theo một cách nào đó. Nếu tôi có thể ngã ba, nó chỉ là vấn đề để cho quá trình cha mẹ trở lại sớm, để cho đứa trẻ làm việc trên một vài thứ nữa.
Tôi đã tìm thấy một số người nói về công việc của riêng họ khi nhận các chức năng PCNTL khác nhau được biên dịch trên Windows, nhưng dường như không có bất kỳ thứ gì (liên kết bị hỏng, v.v.).
Mặc dù this question có tên thực tế giống như tôi, có vẻ như vấn đề đã hết thời gian chờ thực hiện hơn là cần phải ngã ba. Vì vậy, là lựa chọn tốt nhất của tôi để chỉ refactor một chút để đối phó với gọi php-cgi, hoặc là có các tùy chọn khác?
Chỉnh sửa: Có vẻ như exec()
sẽ không hoạt động cho điều này, ít nhất là không có tôi để tìm một số khía cạnh khác của nó, vì nó đợi cho đến khi cuộc gọi trở lại. Tôi figured tôi có thể sử dụng START
, loại giống như exec('start php-cgi.exe somescript.php');
, nhưng nó vẫn chờ đợi cho đến khi kịch bản khác kết thúc.
bạn có coi công việc cron cho việc này không? (có một số tùy chọn có sẵn, http://www.google.com/search?q = cron + windows) – user187291
Từ những gì tôi có thể thấy, có vẻ như nó sẽ làm việc cũng như sử dụng psexec, nhưng tôi chỉ có những thứ làm việc với psexec vì vậy tôi có lẽ sẽ chỉ dính vào đó. –