react-native-queue
react-native-queue copied to clipboard
I can't get this library to work
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,
},
});
Same like you, This library is too old man :), meanwhile RN is too sensitive :-D