parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 28.03.2006 15:18 / 28.03.2006 15:23

^selectRecipients.menu{
	^void:sql{INSERT INTO spool (recipient_id, content_id) VALUES ($selectRecipients.id, $content_id)
}
в случае MySQL можно так (работает в разы быстрее):
^void:sql{INSERT INTO spool (recipient_id, content_id) VALUES 
	^selectRecipients.menu{
		($selectRecipients.id, $content_id)
	}[,]
в отправке можно упразднить поле is_sent и просто удалять из спула уже разосланное, а заодно делать join spool & recipients и не доставать email-ы отдельными запросами. аналогично весь требуемый content можно достать в хеш одним запросом (where id IN (^ selectQueye.menu{$selectQueye.content_id}[,]) ). ну и update (или delete) можно делать для пачки записей, а не поотдельности...

а ещё mail:send в ^try{} ибо возможны ошибки, в случае возникновения которых помечать получателя (и/или в лог его) и если ошибки постоянные через некоторое время прекращать попытки отправлять ему почту.