
Run async tasks that retry after a crash, connection loss or exception
The react-native-persistent-job library offers a robust solution for managing asynchronous functions, referred to as jobs, that can adapt to interruptions such as failures, connection losses, application crashes, or user-initiated shutdowns. Designed for both Android and iOS platforms, this library addresses the common scenario developers face when ensuring that applications can maintain stability even when circumstances aren't ideal. By focusing on the unscripted nature of app performance, this repository becomes a valuable tool for building resilient mobile applications.
With its focus on creating a seamless experience through the management of background tasks, this library allows developers to implement job persistence and efficiency. As applications often experience unpredictable behavior, the react-native-persistent-job aims to help navigate these challenges, ensuring that vital processes continue to operate smoothly, keeping user interactions uninterrupted.
Cross-Platform Support: Works on both Android and iOS, making it versatile for mobile app development.
Job Resilience: Automatically re-runs jobs in case of failures or app shutdowns, enhancing the reliability of your application.
Initialization API: The initializeStore function sets up job handlers and options, ensuring that previously stored jobs can resume immediately after initialization.
Persistent Job Creation: Utilizing the createJob function, developers can easily wrap functions with persistent job capabilities, enabling reliable execution.
Job Modification Streams: Offers the ability to modify the way jobs run and retry through customizable streams, allowing advanced control over job execution.
Retry Mechanisms: Supports built-in retry strategies like exponential and Fibonacci backoff, providing enhanced error management for failed jobs.
Concurrency Control: Users can limit the number of concurrent jobs, ensuring that system resources are properly managed and not overburdened.
Flexible Job Types: Enables registration of various job types, allowing for tailored handling of different functions within your application.

React Native is a framework for building mobile applications using React and JavaScript. It enables developers to write once and deploy to multiple platforms, including iOS, Android, and the web, while providing a native app-like experience to users.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.