Фон / через x минут выборки - PullRequest
0 голосов
/ 24 января 2019

Мне нужно сделать данные, которые я получаю и сохраняю в избыточном количестве, чтобы они были получены в фоновом режиме или в течение нескольких минут.

Приложение имеет базу данных с записями, которые постоянно обновляются (иногда с 10 до 1 часа), и теперь мне нужно убить приложение, чтобы снова была получена дата.

Все в моем кодеявляется базовым редуксом с действием, а 5 сокращается с помощью API извлечения и отправки данных.

export function fetchStatsFromAPI() {
  return (dispatch) => {
    dispatch(getStats())
    fetch(Config.SERVER_URL + '/mob/sport/getPlatfromStats', { //home
    method: 'POST',
    headers: {
        "Content-Type": "application/json",
    },
    body: JSON.stringify({
        code: "7",
        sessId: session,
        data: {
            client_id: client,
            u: user
        }
    })
    }).then((response) => response.json())
    .then((res) => {
        let data = res["data"]["response"]["data"];
  dispatch(getStatsSuccess(data))
  })
})
.catch(err => dispatch(getStatsFailure(err)))
}

А остальные части - просто базовый Redux и redux-thunk.

Как я могу сделать эту выборкузапускаться каждые X минут, даже когда пользователь открыл приложение?Я пытался с https://www.npmjs.com/package/react-native-background-fetch, но я не знаю, как это сделать.

1 Ответ

0 голосов
/ 24 января 2019

Мое предложение будет заключаться в использовании сокетов в бэкэнде, чтобы сервер мог отправлять событие в ваше приложение по мере изменения данных, чтобы вы могли прослушивать его и обновлять состояние редукции.если вы просто хотите получать данные каждые x минут, вы можете обойтись вызовом fetch внутри setTimeout.

`

componentDidMount(){
  this.timer=setInterval(()=>this.fetchData(),x*60*1000)
 }
fetchData() {
   //your fetch call
  }
componentWillUnmount(){
 clear(this.timer)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...