В моем приложении Yii 1.1 мне нужно отправить 2 письма после того, как запись была правильно создана, но поскольку функция электронной почты работает медленно (я использую аутентификацию SMTP) пользователю придется ждать 4-6 секунд каждый раз. Я пробовал использовать функции php exec, но сценарий, который я называю, не имеет рамки Yii. Есть ли способ просто вызвать действие или почтовую функцию без необходимости ждать? Расширение runaction Yii не работает для меня, я пытался его использовать, но функция runBackground никогда не запускается.Как отправить почту, не дожидаясь завершения операции
ответ
У вас есть доступ к планировщику (например, cron
) на сервере? Сохраняйте сообщения в очереди, обрабатываемой не интерактивно каждую минуту.
. Моя проблема в том, что я не знаю, есть ли у меня доступ к серверным crons. – dgtal
Внешний сервер может автоматически вызывать скрипт через HTTP. Я бы не назвал это решение самым надежным, возьмите его в качестве последнего средства. –
Привет, я понимаю ваше требование. Вы знаете, что Yii очень вдохновлен Ruby on Rails. В Ruby on Rails есть Delayed Job
. К счастью Yii имеет некоторое расширение, для фоновых заданий, пожалуйста, смотрите, чтобы это,
Надеется, что это помогает.
- 1. Основная активность не дожидаясь завершения суб-операции
- 2. Задача не дожидаясь завершения
- 3. jQuery.when не дожидаясь завершения
- 4. Symfony2 SwiftMailer - Как отправить электронную почту, не дожидаясь ответа сервера
- 5. Закончить деятельность, не дожидаясь завершения
- 6. Task.WaitAll не дожидаясь завершения задачи
- 7. Продолжить Не дожидаясь завершения задачи
- 8. Parallel.Invoke(), не дожидаясь завершения выполнения
- 9. CasperJS WaitFor не дожидаясь завершения условия
- 10. Mocha проверяет случаи, не дожидаясь до завершения
- 11. Функция работает, не дожидаясь завершения предыдущего.
- 12. afterEach не дожидаясь завершения до продолжения
- 13. для цикла не дожидаясь завершения функции
- 14. Asynchronous Storec Proc не дожидаясь завершения
- 15. Функция обратного вызова jQuery не дожидаясь завершения
- 16. p.waitFor(), не дожидаясь его завершения (Java)
- 17. vb.net Не дожидаясь завершения всех заданий
- 18. ждут Task.WhenAll не дожидаясь завершения всех задач.
- 19. Как отправить форму, не дожидаясь ответа
- 20. Функция угловой асинхронности не дожидаясь завершения до завершения
- 21. Звонки по временному методу - как я могу двигаться, когда время истекает, не дожидаясь завершения операции?
- 22. Как дождаться завершения операции?
- 23. Отправить асинхронную электронную почту с phpmailer
- 24. Как отправить значение через намерение после завершения операции
- 25. Не удается отправить почту
- 26. Способ завершения операции ждет завершения?
- 27. Как вызвать хранимую процедуру, не дожидаясь ее завершения?
- 28. Как запустить другой скрипт в Python, не дожидаясь его завершения?
- 29. КАК заставить test.php продолжать остальную кодировку, не дожидаясь завершения функции?
- 30. Как визуализировать текст для вывода, не дожидаясь завершения функции?
Создать очередь сообщений. У Yii есть что-то, называемое Mail Queue – FeedTheWeb