Fix: Entfernt Dauer-Loop
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:workmanager/workmanager.dart';
|
import 'package:workmanager/workmanager.dart';
|
||||||
|
|
||||||
import '../Tasks/generate_transactions_task.dart';
|
import '../Tasks/generate_transactions_task.dart';
|
||||||
|
import '../Tasks/task.dart';
|
||||||
import 'port_controller.dart';
|
import 'port_controller.dart';
|
||||||
|
|
||||||
/// Erstellt Hintergrundtasks und führt diese aus
|
/// Erstellt Hintergrundtasks und führt diese aus
|
||||||
@@ -25,23 +26,34 @@ class BackgroundTaskController {
|
|||||||
} else {
|
} else {
|
||||||
unawaited(
|
unawaited(
|
||||||
Isolate.run(() async {
|
Isolate.run(() async {
|
||||||
sleep(const Duration(minutes: 1));
|
await _runTask(
|
||||||
|
GenerateTransactionsTask(),
|
||||||
|
const Duration(minutes: 1),
|
||||||
|
const Duration(minutes: 30),
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _runTask(
|
||||||
|
final Task task,
|
||||||
|
final Duration initialDelay,
|
||||||
|
final Duration frequency,
|
||||||
|
) async {
|
||||||
|
sleep(initialDelay);
|
||||||
|
|
||||||
while (true) {
|
|
||||||
final RootIsolateToken? rootIsolateToken = await PortController()
|
final RootIsolateToken? rootIsolateToken = await PortController()
|
||||||
.getRootIsolateToken();
|
.getRootIsolateToken();
|
||||||
|
|
||||||
if (rootIsolateToken != null) {
|
if (rootIsolateToken != null) {
|
||||||
BackgroundIsolateBinaryMessenger.ensureInitialized(
|
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
|
||||||
rootIsolateToken,
|
|
||||||
);
|
|
||||||
await GenerateTransactionsTask().execute();
|
await GenerateTransactionsTask().execute();
|
||||||
}
|
}
|
||||||
sleep(const Duration(minutes: 30));
|
|
||||||
}
|
sleep(frequency);
|
||||||
}),
|
|
||||||
);
|
unawaited(_runTask(task, initialDelay, frequency));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user