cte-zl-ifrn / moodle__local_suap

MIT License
3 stars 3 forks source link

Sincronização assíncrona #15

Open cte-ead opened 1 year ago

cte-ead commented 1 year ago

Causa

Atualmente a sincronização é toda feita de forma síncrona, entretanto, notou-se que a função groups_add_member deixa o processamento que era de 1.85s executando em 17.75 segundos.

Para diminuir este tempo é importante executar em um cronjob de forma assíncrona apenas a adição do usuário nos grupos. Atualmente, 4 grupos por diário e 4 por sala de coordenação, assim, em uma turma com 200 alunos serão 1600 inserts e disparará o evento que sinconiza os membros da grupo no Quiz e no Messaging.

Solução

  1. Criar uma tabela que armazene JSON recebido (pode ser na íntegra) para posterior processamento via Moodle Task. 2. 2
  2. Sempre que sincronizar, adicionar na tabela
  3. Criar uma task para processar os que ainda não foram processados, pela ordem de inclusão.