Mais Rapidez Para O Bd
#1
Posted 16/10/2004, 16:14
Projetos e muito mais....Valeu
Ricardo Zanelati
#2
Posted 16/10/2004, 16:21
Talvez a forma como vc faz o envio da newsletter deva ser reavaliado. Alguns servidores limitam o uso de um determinado recurso ou colocam timeout em determinados serviços, se vc passa muito tempo executando um determinado recurso, o próprio servidor se envarrega de "encerrar" a conexão, isto evita problemas no servidor.
Mero mortal!
#3
Posted 16/10/2004, 16:31
como que sites grandes e que nao sao servidores proprios enviam newsletter em grande quantidade sem esse problema?
valeu
#4
Posted 16/10/2004, 16:32
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
#5
Posted 16/10/2004, 16:37
uma vez fui mandar uma newsletter e travou a xxxxxx toda.
tem alguma diferenca em news com access ou mysql? o envio fica mais eficaz de acordo com o bd?
#6
Posted 16/10/2004, 16:43
Projetos e muito mais....Valeu
Ricardo Zanelati
#7
Posted 16/10/2004, 16:52
Como comentado anteriormente, a performance deste processo depende do sistema num todo...
Não tenho nenhum newslatter pronto, mas o tivesse, faria desta forma:
- executar o select na tabela dos emails;
- enviar uma quantidade limitada, vamos supor, 10 emails;
- este item só funciona o envio de vários simultaneos se os emails não forem personalizados, por exemplo, com o nome do cliente;
- gravar em uma tabela temporária, os emails que já foram enviados, somente para certificar no caso de ocorrer algum problema;
- caso um problema venha a ocorrer, basta prosseguir somente com os usuários que ainda não estão na tabela temporária;
- termina a execução;
Isto faria com que o sistema ficasse mais lento, porém, mais confiavel.
Edição feita por: Prog, 16/10/2004, 16:56.
Mero mortal!
#8
Posted 16/10/2004, 16:53
foi como o prog falou, o probl pode nao ser do bd
vamos ver se alguem tem mais alguma informacao
#9
Posted 16/10/2004, 16:59
<!--#include file = "config.asp"-->
<%
'Abre a conexao com o banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
'Pega os dados digitados no form
assunto = request("assunto")
mensagem = request("mensagem")
'Faz a listagem dos usuarios para pegar o nome
Set listar = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
listar.open sql, conex, 1,1
'Faz um while
while not listar.eof
'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios where id="&listar("id")
nome.open sql, conex, 1,1
while not nome.eof
'envia o e-mail
Set objmail = Server.CreateObject("CDONTS.NewMail")
objmail.from = nome_admin & "<"&email_admin&">"
objmail.to = nome("email")
objmail.subject = assunto
objmail.body = "Olá <b>"& nome("nome") & "</b><br><br> " & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send
'Move para o próximo registro
nome.movenext
wend
listar.movenext
wend
'Exibe a mensagem de que os emails foram enviados com sucesso
response.Write("Os e-mails foram enviados com sucesso.")
%>Preciso mudar algo
Projetos e muito mais....Valeu
Ricardo Zanelati
#10
Posted 16/10/2004, 17:08
...
'Faz a listagem dos usuarios para pegar o nome
Set listar = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
listar.open sql, conex, 1,1
'Faz um while
while not listar.eof
'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios where id="&listar("id")
nome.open sql, conex, 1,1
while not nome.eof
'envia o e-mail
Set objmail = Server.CreateObject("CDONTS.NewMail")
objmail.from = nome_admin & "<"&email_admin&">"
objmail.to = nome("email")
objmail.subject = assunto
objmail.body = "Olá <b>"& nome("nome") & "</b><br><br> " & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send
'Move para o próximo registro
nome.movenext
wend
listar.movenext
wend
...
somente este código resolve
...
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
nome.open sql, conex, 1,1
[COLOR=red]while[/COLOR] not nome.eof
'envia o e-mail
Set objmail = Server.CreateObject("CDONTS.NewMail")
objmail.from = nome_admin & "<"&email_admin&">"
objmail.to = nome("email")
objmail.subject = assunto
objmail.body = "Olá <b>"& nome("nome") & "</b><br><br> " & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send
'Move para o próximo registro
nome.movenext
wend
...
ps.: este é somente 1 dos problemas, mas este era um problema realmente muito importante, os outros problemas são apenas na forma de fazer a coisa acontecer, isto vai de programador p/ programador.
Mero mortal!
#11
Posted 16/10/2004, 17:13
Projetos e muito mais....Valeu
Ricardo Zanelati
#12
Posted 16/10/2004, 17:20
<!--#include file = "config.asp"-->
<%
'Abre a conexao com o banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
'Pega os dados digitados no form
assunto = request("assunto")
mensagem = request("mensagem")
'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
nome.open sql, conex, 1,1
Set objmail = Server.CreateObject("CDONTS.NewMail")
while not nome.eof
'envia o e-mail
objmail.from = nome_admin & "<"&email_admin&">"
objmail.to = nome("email")
objmail.subject = assunto
objmail.body = "Olá <b>"& nome("nome") & "</b><br><br> " & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send
'Move para o próximo registro
nome.movenext
wend
Set objmail = null
'Exibe a mensagem de que os emails foram enviados com sucesso
response.Write("Os e-mails foram enviados com sucesso.")
%>
ps.: alterei a posição da linha Set objmail = Server.CreateObject("CDONTS.NewMail") e inclui a linha Set objmail = null somente para facilitar a vida do sistema operacional.
Mero mortal!
#13
Posted 16/10/2004, 17:34
error '80040108'
/email/admin/enviar_email.asp, line 18
Projetos e muito mais....Valeu
Ricardo Zanelati
#14
Posted 16/10/2004, 17:47
Mero mortal!
#15
Posted 16/10/2004, 18:55
Projetos e muito mais....Valeu
Ricardo Zanelati
2 user(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)











