powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как отправить письмо в фоновом режиме?
18 сообщений из 18, страница 1 из 1
как отправить письмо в фоновом режиме?
    #38038072
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вот в чем заключается вопрос

есть страница, на которую юзер попадает с предварительно подготовленной ссылки
в OnPreHTTP() происходит анализ переданных параметров и в случае успеха нужно сразу отправить письмо в фоновом режиме
пробовал через JOB, но страница не загружается дальше, а ждет результата отправки письма, который кстати(результат) должен сохраниться в бд

как возможно реализовать фоновую отправку, чтоб страница сразу загрузилась?
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038125
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно что через JOB ждет результата отправки, может пример кода прояснит ситуацию
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038136
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

через JOB компилятор не пускает
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038154
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007,

через JOB наверно пытался запустить метод класса ?
а так просто это не прокатит, лучше сделать в этом методе метку и вызывать JOBом ее
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038159
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Class t.t Extends %CSP.Page
{

ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
 ...
 d ##class(t.t).send(.txt,o)
 q 1
}
ClassMethod OnPage() As %Status
{
	&html<
	<html>
	 <body>
	    <div>%err='#(%err)#'</div>
	 </body>
	</html>
	>
	Quit $$$OK
}

ClassMethod send(ByRef txt As %String,o As hndb.history1)
{
	s o.scReSendMail=##class(t.MethodsSendEmail).newSend(.txt)
	s sc=o.%Save()
}
}



вот
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038211
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007вот
И где джоб?
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038235
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так
Class t.t Extends %CSP.Page
{

ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
...
JOB send(.txt,o)
q 1
send(txt,o)
s o.scReSendMail=##class(t.MethodsSendEmail).newSend(.txt)
s sc=o.%Save()
}
ClassMethod OnPage() As %Status
{
&html
Quit $$$OK
}

}
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038248
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Код: sql
1.
JOB send(.txt,o)



на точку ругается компилятор
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038258
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007,

да, это я упустил, конечно будет ругаться, процесс то фоновый, и он не сможет вернуть значение
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038275
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorон не сможет вернуть значение
Точка это не "возврат значения"...

точка это передача значения по ссылке, и в том числе может позволить вернуть из метода несколько результатов
и потому как в разных процессорах не может быть одно и тоже значение то происходит ошибка

такое объяснение ошибки пойдет ?
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038295
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

спасибо, я знал это )))

вызов через JOB вешает страницу
пробую через DO

теперь не передается txt в строке - txt типа мультидим
d send(txt,o)
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038300
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007krvsa,

спасибо, я знал это )))

вызов через JOB вешает страницу
пробую через DO

теперь не передается txt в строке - txt типа мультидим
d send(txt,o)
поставь для JOB таймаут
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038351
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

не помог

j send(txt,o)::2
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038406
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все переменные перевел в процентные
запускаю JOB send()
выдает ошибку <NOLINE> как раз на этой строке
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038410
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и поставь для метода где вызываешь JOB ProcedureBlock = 0
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038479
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

сделал все как рекомендовал, спасибо

заработало с некоторыми исключениями

если txt будет типа мультидим
s txt(1)=1
s txt(2)=2

то выскакивает ошибка <undefined> *txt
в строке
j send(txt,o)

пришлось просто передвать обычные переменные, потом формировать текст письма, открыв соответствующий объект
отправлять его и ждать ответа в рамках метки send

гемор какой то, не ожидал подвоха )))!!!
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038571
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007гемор какой то, не ожидал подвоха )))!!!
Джобы они такие джобы!
...
Рейтинг: 0 / 0
как отправить письмо в фоновом режиме?
    #38038582
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В параметрах команды job в каше есть опция передать symbol table. Это не оно? Просто любопытно.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как отправить письмо в фоновом режиме?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]