Tôi đã tạo một bảng cơ sở dữ liệu Email-Queue. Tôi sẽ chèn tất cả các email mà ứng dụng PHP của tôi cần gửi vào bảng này.Làm thế nào để chạy Cronjobs thường xuyên hơn một lần mỗi phút?
Một tập lệnh PHP khác sau đó sẽ tìm tất cả email chưa gửi và gửi chúng.
Tôi chạy tập lệnh này bằng cronjobs. Thật không may, cronjobs chỉ có thể chạy tối đa một lần mỗi phút. Vì vậy, trong trường hợp xấu nhất, người dùng phải chờ một phút cho đến khi Email của anh ấy thực sự được gửi đi.
Ý tưởng hiện tại của tôi cho giải pháp thay thế là gọi tập lệnh với tham số ngủ bổ sung và nhân đôi cronjob.
Ví dụ:
* * * * * curl emails.php?sleep=0 >/dev/null 2>&1
* * * * * curl emails.php?sleep=10 >/dev/null 2>&1
* * * * * curl emails.php?sleep=20 >/dev/null 2>&1
* * * * * curl emails.php?sleep=30 >/dev/null 2>&1
* * * * * curl emails.php?sleep=40 >/dev/null 2>&1
* * * * * curl emails.php?sleep=50 >/dev/null 2>&1
Trong ví dụ trên kịch bản sẽ chạy mỗi 10 giây. Dòng đầu tiên của tập lệnh email.php sẽ là:
sleep($_REQUEST['sleep']);
Có thể có nhiều người hiểu biết hơn về superuser.stackexchange.com. – EboMike
bạn muốn có một daemon php, không phải là một script cron. –