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

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

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

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

через JOB наверно пытался запустить метод класса ?
а так просто это не прокатит, лучше сделать в этом методе метку и вызывать JOBом ее
...
Рейтинг: 0 / 0
14.11.2012, 15:11
    #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
14.11.2012, 15:29
    #38038211
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отправить письмо в фоновом режиме?
Ymka2007вот
И где джоб?
...
Рейтинг: 0 / 0
14.11.2012, 15:39
    #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
14.11.2012, 15:44
    #38038248
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отправить письмо в фоновом режиме?
DAiMor,

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



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

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

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

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

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

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

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

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

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

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

не помог

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

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

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

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

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

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

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


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