ciclomapa icon indicating copy to clipboard operation
ciclomapa copied to clipboard

Atualizador recorrente automático de dados

Open cmdalbem opened this issue 6 years ago • 2 comments

Hoje em dia para atualizar o banco de dados com os dados mais recentes do OSM o usuário deve manualmente clicar no botão de "Atualizar".

image

Idealmente gostaríamos que essas atualizações fossem automáticas e ocorressem o mais frequentemente possível (digamos, a cada 5 minutos).

Pra inspiração, o script abaixo pode ser rodado no console e ele irá atualizar as cidades listadas no array de cities:

const cities = [
    'Aracaju, Sergipe, Brasil',
    'Belém, Pará, Brasil',
    'Belo Horizonte, Minas Gerais, Brasil',
    'Boa Vista, Roraima, Brasil',
    'Brasília, Distrito Federal, Brasil',
    'Campo Grande, Mato Grosso do Sul, Brasil',
    'Cuiabá, Mato Grosso, Brasil',
    'Curitiba, Paraná, Brasil',
    'Florianópolis, Santa Catarina, Brasil',
    'Fortaleza, Ceará, Brasil',
    'Goiânia, Goiás, Brasil',
    'João Pessoa, Paraíba, Brasil',
    'Macapá, Amapá, Brasil',
    'Maceió, Alagoas, Brasil',
    'Manaus, Amazonas, Brasil',
    'Natal, Rio Grande do Norte, Brasil',
    'Olinda, Pernambuco, Brasil',
    'Palmas, Tocantins, Brasil',
    'Paulista, Pernambuco, Brasil',
    'Porto Alegre, Rio Grande do Sul, Brasil',
    'Porto Velho, Rondônia, Brasil',
    'Recife, Pernambuco, Brasil',
    'Rio Branco, Acre, Brasil',
    'Rio de Janeiro, Rio de Janeiro, Brasil',
    'Salvador, Bahia, Brasil',
    'Sao Luis, Maranhão, Brasil',
    'São Paulo, São Paulo, Brasil',
    'Teresina, Piauí, Brasil',
    'Vitória, Espírito Santo, Brasil',
]

// Task that retrieves and processes data from OSM
const task = name => {
    ciclomapa.setState({ loading: true });
    return ciclomapa.getDataFromOSM({areaName: name});
}

// Apply the task iteratively to the cities in the array
cities.reduce((promiseChain, name) => {
    return promiseChain.then(chainResults =>
        task(name).then(currentResult =>
            [...chainResults, currentResult]
        )
    );
}, Promise.resolve([])).then(arrayOfResults => {
    console.log('All done!');
});

cmdalbem avatar Nov 21 '19 00:11 cmdalbem

Não vejo o botão para atualizar, a opção foi removida? Fiz umas correções no Centro e Norte de Niterói.

nighto avatar Nov 20 '20 18:11 nighto

Oi @nighto não tiramos o botão, ele permanece no mesmo lugar de sempre! Mas tivemos umas pequenas mudanças no design, talvez vc não achou por isso. Basta passar o mouse no textinho na parte superior da tela que vc verá esta popup:

image

cmdalbem avatar Nov 28 '20 23:11 cmdalbem