WorkManager has some extensive documentation on how to use it that also includes a migration guide covering the move from Firebase JobDispatcher.
In the documentation you can find a section that explain the different threading behaviour of the different Worker classes.
In your particular case, it really depends if what you want to execute periodically is synchronous or not.
- If what you want to run is synchronous: use a
Worker
- If what you want to run asynchround: use a
CoroutineWorker
if you're using Kotlin, otherwise you've to use a ListenableWorker
.