Task Queue

順番を保ったタスク実行を可能にする軽量なキューイングシステムを提供するFlutterパッケージです。

機能

  • 追加した順番にタスクを実行
  • 同期処理のシンプルな実装
  • 非同期タスクの順序付き実行
  • タスクの完了を待機する機能

導入方法

pubspec.yamlに依存関係を追加します:

dependencies:
  task_queue: ^2025.1.0

パッケージをインポートします:

import 'package:task_queue/task_queue.dart';

使用方法

基本的な使い方

// TaskQueueのインスタンスを作成
final taskQueue = TaskQueue();

// タスクをキューに追加
await taskQueue.queue(() async {
  // 最初に実行されるタスク
  await Future.delayed(Duration(seconds: 1));
  return '最初のタスク完了';
});

// 別のタスクを追加(前のタスクが完了するまで実行されない)
final result = await taskQueue.queue(() async {
  // 2番目に実行されるタスク
  await Future.delayed(Duration(seconds: 1));
  return '2番目のタスク完了';
});

print(result); // '2番目のタスク完了'と出力

すべてのタスクの完了を待機

// 複数のタスクを追加
for (int i = 0; i < 5; i++) {
  taskQueue.queue(() async {
    await Future.delayed(Duration(seconds: 1));
    print('タスク $i 完了');
  });
}

// すべてのタスクが完了するまで待機
await taskQueue.join();
print('すべてのタスク完了');

キューの状態確認

if (taskQueue.isEmpty) {
  print('実行待ちのタスクはありません');
}

if (taskQueue.isNotEmpty) {
  print('まだ実行待ちのタスクがあります');
}

その他の情報