Implementando o agendamento em um aplicativo

5

Estou criando um aplicativo e o usuário final usará uma tela de administração para agendar o conteúdo na primeira página. Eles estarão escolhendo duas datas, uma data de início e uma data final.

Obviamente, eu não quero percorrer toda a coleção para ver se a data de hoje é entre qualquer uma das datas de início ou término toda vez que a primeira página é carregada.

Além disso, não quero que o usuário possa agendar duas coisas que se sobrepõem umas às outras. Deve haver uma maneira melhor do que verificar conflitos com cada registro antes de salvar.

Usando o Node / Socketio / Express / Mongoose

Eu poderia indexar a coleção no Mongo e, em seguida, classificar de acordo para testar a data de hoje e garantir que não haja horários conflitantes. Além disso, eu poderia ter um sinalizador definido quando o dia muda, o que significa conteúdo atual. Eu pensei que poderia haver uma maneira melhor.

Alguém tem alguma ideia?

    
por Sara Chipps 08.02.2012 / 03:57
fonte

2 respostas

4

Obviously I don't want to cycle through the entire collection

Não é óbvio para mim. Quão grande é essa coleção?

Enfim, por que você teria que percorrer toda a coleção? Coloque-os em uma lista ordenada pelo tempo de expiração. Desde que o tempo avança, você pode descartar tudo o que expirou. Então você só precisa verificar se o primeiro elemento é atual. Quando expirar, descarte-o e use o próximo.

    
por 08.02.2012 / 05:12
fonte
2

Parece que você pode resolver esse problema com o cache. Em outras palavras, vá em frente e percorra toda a coleção, mas faça isso apenas quando o cache for inválido. Obviamente, isso dependeria dos detalhes de suas necessidades, mas algo a ser observado, se você puder se safar.

    
por 08.02.2012 / 04:28
fonte