PHP-решение
Я немного больше подумал о вашей проблеме, и это решение PHP, которое я придумал.
#!/opt/lamp/bin/php
- это путь к моему phpпереводчик.Вы должны изменить его на свой путь или просто запустить его с помощью php -f scheduler.php
scheduler.php
#!/opt/lampp/bin/php
<?php
// For testing purpose I set this to 5 seconds. You should set it to 600.
$time = 5;
while (true) {
/*
let's assume you store the emails scheduled from the database in this
in memory array.
*/
$array = array(
"Message to run last", #message which is scheduled last.
"Message to run after first message",
"Message to run immediately", #message which is scheduled first.
);
$message = array_pop($array);
while ($message != NULL) {
echo $message . "\r\n";
/*
For testing purpose I am just simply echoing out messages.
In here you should sent mails using for exmample
http://php.net/manual/en/function.mail.php
*/
$message = array_pop($array); // Get next message.
}
/*
sleep $time. This is the "cron" part of your problem.
*/
sleep($time);
}
Вы должны запустить этот скриптиз скрипта bash, чтобы увидеть, что он делает.Также код был задокументирован довольно хорошо.Скрипт должен работать вечно (в фоновом режиме).
Решение Java
Это также не только решение PHP , но я думаю, что оно будет масштабироваться лучше, чем решение PHP, которое я придумал.Я все еще работаю над этим, но мне нравится то, что я придумал.
Решение Google App Engine
Я знаю, что это не решение PHP, но когда вы не можетеустановить очередь сообщений Я думаю, что Google App Engine - лучшее решение .Когда я увидел это видео введение от Бретта Слаткина в движок приложения Google с использованием Python SDK, я был продан движку Google App.Это займет всего 10 минут вашего времени, и вы узнаете, как создать базовую гостевую книгу и развернуть ее в облаке.Ниже, если интересно, я попытаюсь объяснить, какие части вам нужно сделать в Google App Engine.
Полагаю, мне понадобится какая-то система сообщений
Возможно, вы можете использовать taskqueue движка приложения Google, чтобы выполнить задание.У очереди задач даже есть эта , которую вы можете настроить для запуска в определенное время.У движка Google App есть щедрая бесплатная квота .Вы можете добавлять 100 000 очередей к задаче бесплатно каждый день.
но как работает почтовая часть
Я бы использовал для этого Google App Engine.Вы можете использовать сервис mail движка приложения Google.Он также имеет щедро бесплатную квоту (2000 получателей в день).Я бы посоветовал вам просто позвонить в API api из очереди, чтобы отправить сообщение.