react-native-queue icon indicating copy to clipboard operation
react-native-queue copied to clipboard

I can't get this library to work

Open simaattar opened this issue 5 years ago • 1 comments

Hello, I need to frequently write into a text file, let's say write a timestamp into a file. But it never works, would you please tell me what I'm doing wrong??? Here is my code:

import React, { Component } from 'react';
import Mytest from './test';
import BackgroundTask from 'react-native-background-task'
import {Platform,...} from 'react-native';
import queueFactory from 'react-native-queue';

var RNFS = require('react-native-fs');
var path = RNFS.DocumentDirectoryPath + '/queueTest.txt';
var count = 0

BackgroundTask.define(async () => {

  queue = await queueFactory();

  queue.addWorker('background-example', async (id, payload) => {

    if (payload.name == 'sima') {
      Mytest.writeFiles()
      console.log('Hello from a background task ')}
  });

  await queue.start(20000); 

  BackgroundTask.finish();

});

export default class App extends Component<{}> {

  constructor(props) {
    super(props);

    this.state = {
      queue: null,
      data: null,
    };

    this.init();

  }

  async init() {
    const queue = await queueFactory();
    queue.addWorker('background-example', async (id, payload) => {
    console.log(id);
    });

    this.setState({
      queue
    });

  }

  componentDidMount() {
    BackgroundTask.schedule(); 
  }

  makeJob(jobName, payload = {}) {
    console.log('job is created but will not execute until the above OS background task runs in ~15 min');
    this.state.queue.createJob(jobName, payload, {
     timeout: 5000
    }, false); 
  }


  render() {

    let output = 'No data loaded from OS background task yet.';
    if (this.state.data) {
      output = JSON.stringify(this.state.data);
    }

    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text>Click buttons below to add OS background task jobs.</Text>
        <Text>Then Close App (task will not fire if app is in focus).</Text>
        <Text>Job will exec in ~15 min in OS background.</Text>
        {this.state.queue && <Button title={"Press To Queue sima Job"} onPress={ () => { this.makeJob('background-example', { name: 'sima' }) } } /> }
        {this.state.queue && <Button title={"Press To Queue another Job"} onPress={ () => { this.makeJob('background-example', { name: 'simsim' }) } } /> }
        <Text>{output}</Text>
      </View>
    );

  }


}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
});

simaattar avatar Oct 02 '19 10:10 simaattar

Same like you, This library is too old man :), meanwhile RN is too sensitive :-D

maitrungduc1410 avatar Oct 04 '19 09:10 maitrungduc1410