felipelube/django-xram_memory

Dar suporte a mecanismos de busca embarcados: lunr

felubra opened this issue · 0 comments

Requisitos

Execução

  1. A operação de geração do índice deve ser agendada toda vez que uma notícia e/ou seus conteúdos correlatos forem atualizados
  2. A geração deve ser agendada para ser executada em n segundos no futuro (janela de agendamento)

Atomicidade

  1. Só deve haver uma operação de geração por janela de execução
  2. Novas atualizações dentro da janela de execução devem reiniciá-la, ou seja, a mesma tarefa de geração já iniciada deve ser adiada
  3. O procedimento todo deve ser logado

Implementação

Execução

  • Construir um escutador de sinal, que deve agendar a execução de uma task assíncrona toda vez que os conteúdos do site atualizarem
  • Parametrizar uma task do celery com um ETA (janela de agendamento) e um timeout (janela de execução) definidos em configuração
  • Construir a função da task para gerar um índice com todas as notícias e documentos do sistema - o local onde o arquivo será gerado deve ser parametrizado na configuração; e, enquanto um índice novo estiver sendo gerado, o arquivo do índice antigo deve permanecer disponível.
  • TODO: logar

Atomicidade