Ir para conteúdo
brunonative

Intervalo de tempo para disparo de ações.

Recommended Posts

Boa noite.

 

Estou tendo um problema em um sistema e não consigo visualizar uma solução.

Vamos lá ..

 

Existe a tabela AGENDAMENTO com as seguintes colunas:  ID | EMAIL IMEDIATO | PRÓXIMO EMAIL | INTERVALO


EMAIL IMEDIATO e PRÓXIMO EMAIL faz uma consulta na tabela EMAILS onde tem textos cadastrados.

 

Eu quero que toda vez que for cadastrado um AGENDAMENTO, seja feito o envio na hora do EMAIL IMEDIATO e que o PRÓXIMO EMAIL seja enviado de acordo com o INTERVALO cadastrado.
O INTERVALO ta sendo cadastrado com  número de 1 a 48, que é o número de horas para o intervalo.

 

Eu não to conseguindo visualizar uma solução para isso, podem me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha dúvida é a seguinte: Toda vez que eu cadastrar o agendamento, o EMAIL IMEDIATO seja enviado na hora que for cadastrado e o próximo email seja enviado de acordo com o intervalo cadastrado.

 

Vamos supor: o intervalo para o próximo email foi de 2 horas.

O email imediato vai ser enviado assim que for cadastrado o agendamento e o próximo daqui a 2 horas.
Eu estava tentando executar um script junto com o cronjob. mas não sei como fazer isso dar certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Mysql tem um objeto chamado EVENT que permite o agendamento de tarefa , outros BDs tem coisas semelhantes.

 

1)  Mande o email imediato e grave a data/hora de envio do segundo.

 

2) Rode uma procedure de x em x minutos que veja quais emails já deveriam ter sido enviados e os enviei gravando um campo indicando o envio.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí pega pois não domino php/mysql , conheço o EVENT apenas de forma superficial , mas creio já ser um caminho.

 

 Basicamente sei o que o EVENT chama uma procedure , neste procedure você faria (grosso modo)

um sql para determinar que deveria ter email enviado

status=nao enviado e datahoraprevista < datahora atual

 

envia o email

 

grava enviado no status

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por danielambrosio
      Possível alterar essa função SESSION time que contabiliza por minuto no dados do balance  alterar para contabilizar no balance apenas uma vez no mês ?
       
    • Por danielambrosio
      Possível alterar essa função SESSION time que contabiliza por minuto no dados do balance  alterar para contabilizar no balance apenas uma vez no mês ?
       
    • Por Luis Fernando R. Valle
      Boa tarde.
      Tenho um agendamento para inserir. Mas antes de inserir, preciso validar para ver se não há agendamento no intervalo selecionado
       
      Hoje estou fazendo 2 campos para data inicial e final e 2 campos para horario inicial e final, mas não estou conseguindo.
      Se puder me passar se a melhor forma e o datetime e como fazer essa consulta no banco.
       
      Desde já agradeço.
    • Por Blogger
      Boa noite pessoal, eh meu primeiro topico aqui, preciso muito da ajuda de voces para resolver uma questao em meu site...
      Tenho um aplicativo que puxa algumas informacoes do meu site via http.. certo..
      uma delas sao 2 horarios, de abertura e de fexamento, supoe o seguinte:
       
      HorInicio: 8:00
      Horfim: 18:00     
      No php fica assim..
      (esse date(`w`) == 2) confere se hoje eh terca feira, tenho um desse para cada dia da semana)
      if(date('w') == 2){ // caso a hora atual for maior ou igual a hora inicio e menor ou igual ao fim ele manda true para meu app e ele entende que esta aberto if(date('H:i') >= $ini AND date('H:i') <= $fim){ echo true; } else { echo 0; } } Eu consegui configurar de uma forma que ele entenda que o estabelecimento fica aberto entre esses dois horarios, porem, surgiu a necessidade de colocar o seguinte:
      HorInicio:18:00
      Horfim: 2:00 (Sendo esse horario duas horas da madrugada do dia seguinte)
       
      a questao eh, como fazer meu codigo de php entender que essas 2:00 se trata do dia seguinte? pois da forma atual ele pega o intervalo entre 2:00 e 18:00 (3:00, 4:00, ate as 18:00)
      e eu gostaria que fosse das 18:00 para frente (19:00, 20:00, ate as 2:00)
       
      No meu banco esta definido apenas como tempo atual sem a data, eh possivel fazer sem cadastrar uma data no banco? apenas com o tempo... e se nao for possivel, como fazer isso ser automatico? toda vez que ele for entrar nesse php ele entender qual dia eh hoje e que fica aberto ate amanha ate que horas..
       
      Desculpe se ficou meio confuso.. mas qualquer duvida podem perguntar que eu vou responder, espero alguma luz, obrigado!
       
    • Por xDenisX
      Eae pessoal tudo bem ?
      Seguinte estou aprendendo CSS, e fiz um menu um pouco animado. Ao passar a mouse sobre um Li ela mostra seus componentes com uma animação e delays diferentes.
       
      Meu problema é o seguinte, quando eu tiro o Mouse, os delays ainda acontecem deixando assim uma animação bem "Feia". Eu queria que ao tirar o mouse os itens voltassem ao mesmo tempo sem delay alguém pode me ajudar ?
       
      ( mais uma pergunta, estou aprendendo CSS3 e logo logo começo estudar JavaScript sabem me dizer se conseguria fazer animações como essa utilizando JavaScript mais facilmente ? )
       
      Obrigado pela atenção o código esta abaixo
       
      <!doctype html> <html> <head> <meta charset="utf-8"> <title>Menu deslizante</title> <style> .container{ height: 500px; width: 200px; padding: 0px; overflow: hidden; } .menu{ width: 200px; font-family: Segoe, Segoe UI, DejaVu Sans, Trebuchet MS, Verdana," sans-serif"; color:whitesmoke; font-size: 13pt; } .menu ul{ list-style: none; position: relative; padding: 0px; } .menu ul ul { padding: 0; position:absolute; transform: translateX(200px); } .menu ul li:hover ul{ position: relative; transition:2s; } .menu ul li:nth-child(1){ transition:0.25s; } .menu ul li:hover ul li:nth-child(1){ transform: translateX(-190px); } .menu ul li:nth-child(2){ transition:0.25s; transition-delay: 0.25s; } .menu ul li:hover ul li:nth-child(2){ transform: translateX(-190px); } .menu ul li:nth-child(3){ transition:0.25s; transition-delay: 0.5s; } .menu ul li:hover ul li:nth-child(3){ transform: translateX(-190px); } .menu li{ padding: 15px; cursor: pointer; background-color: rgba(188,27,30,1.00); border-bottom: rgba(229,79,82,1.00) solid 1px; } </style> </head> <body> <div class="container"> <nav class="menu"> <ul> <li>Home</li> <li>Galeria</li> <li>Shop <ul> <li>Cell Cases</li> <li>Notebook Acessories</li> <li>To your House</li> </ul> </li> <li>Contacts</li> <li>About us</li> </ul> </nav> </div> </body> </html>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.