redis_task_queue 0.1.0 copy "redis_task_queue: ^0.1.0" to clipboard
redis_task_queue: ^0.1.0 copied to clipboard

A small Redis-backed task queue for server-side Dart. Enqueue jobs and process them in a worker with retries, a dead-letter list, and weighted queues.

example/redis_task_queue_example.dart

import 'package:redis_task_queue/redis_task_queue.dart';

/// Run a Redis instance, then start this in two terminals:
///   dart run example/redis_task_queue_example.dart worker
///   dart run example/redis_task_queue_example.dart enqueue
Future<void> main(List<String> args) async {
  final mode = args.isEmpty ? 'enqueue' : args.first;

  if (mode == 'worker') {
    final worker = await Worker.connect();
    worker.handle('email:welcome', (task) async {
      // Real work goes here. Throw to trigger a retry.
      print('sending welcome email for user ${task.payload['user_id']}');
    });
    print('worker running (Ctrl-C to stop)');
    await worker.run();
    return;
  }

  final client = await QueueClient.connect();
  final id = await client.enqueue(
    Task('email:welcome', {'user_id': '42'}),
    queue: 'default',
    maxRetries: 5,
  );
  print('enqueued task $id');
  await client.close();
}
1
likes
160
points
0
downloads
screenshot

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A small Redis-backed task queue for server-side Dart. Enqueue jobs and process them in a worker with retries, a dead-letter list, and weighted queues.

Repository (GitHub)
View/report issues

Topics

#redis #queue #jobs #worker #backend

License

MIT (license)

Dependencies

redis

More

Packages that depend on redis_task_queue