2015-02-17 4 views
0

В моем приложении Yii 1.1 мне нужно отправить 2 письма после того, как запись была правильно создана, но поскольку функция электронной почты работает медленно (я использую аутентификацию SMTP) пользователю придется ждать 4-6 секунд каждый раз. Я пробовал использовать функции php exec, но сценарий, который я называю, не имеет рамки Yii. Есть ли способ просто вызвать действие или почтовую функцию без необходимости ждать? Расширение runaction Yii не работает для меня, я пытался его использовать, но функция runBackground никогда не запускается.Как отправить почту, не дожидаясь завершения операции

+2

Создать очередь сообщений. У Yii есть что-то, называемое Mail Queue – FeedTheWeb

ответ

0

У вас есть доступ к планировщику (например, cron) на сервере? Сохраняйте сообщения в очереди, обрабатываемой не интерактивно каждую минуту.

+0

. Моя проблема в том, что я не знаю, есть ли у меня доступ к серверным crons. – dgtal

+0

Внешний сервер может автоматически вызывать скрипт через HTTP. Я бы не назвал это решение самым надежным, возьмите его в качестве последнего средства. –

1

Привет, я понимаю ваше требование. Вы знаете, что Yii очень вдохновлен Ruby on Rails. В Ruby on Rails есть Delayed Job. К счастью Yii имеет некоторое расширение, для фоновых заданий, пожалуйста, смотрите, чтобы это,

Yii Delayed Job

Надеется, что это помогает.

Смежные вопросы