dart_pgmq 2.0.0 copy "dart_pgmq: ^2.0.0" to clipboard
dart_pgmq: ^2.0.0 copied to clipboard

A dart client for Postgres Message Queue (PGMQ).

example/example.dart

import 'dart:async';
import 'dart:io';

import 'package:dart_pgmq/dart_pgmq.dart';

Future<void> main() async {
  // Create a DatabaseConnection
  runZonedGuarded(
    () async {
      final databaseParam = DatabaseConnection(
          host: 'localhost',
          database: 'postgres',
          password: 'postgres',
          username: 'postgres',
          ssl: false,
          port: 5432);

      // Create a connexion
      final pgmq = await Pgmq.createConnection(
          param: databaseParam,
          options:
              PoolConnectionOptions(queryTimeout: Duration(milliseconds: 500)));

      //  Create a queue
      final queue = await pgmq.createQueue(queueName: 'queueName');

      final (pausableTimer, stream) =
          queue.pausablePull(duration: Duration(seconds: 2));

      pausableTimer.start();

      stream.listen(
        (event) {
          final t = Stopwatch()..start();
          print(event);
          print(t.elapsedMilliseconds);
          t.stop();
        },
      );

      // Send messages
      for (var i = 1; i <= 10; i++) {
        final payload = {'id': i, 'message': 'message $i'};
        await queue.send(payload);
      }

      // Read messages
      final data = (await queue.read(maxReadNumber: 5));
      for (final msg in data ?? <Message>[]) {
        print(msg.payload);
        await queue.setVisibilityTimeout(
            messageID: msg.messageID, duration: Duration(seconds: 10));
      }

      // Pop messages
      for (var i = 0; i < 5; i++) {
        await queue.pop();
      }

      // Purge the queue
      await queue.purgeQueue();

      // Drop the queue
      await queue.dropQueue();
      exit(0);
    },
    (error, stack) {
      print(error);
    },
  );
}
3
likes
150
points
89
downloads

Publisher

verified publisherofceabstudio.dev

Weekly Downloads

A dart client for Postgres Message Queue (PGMQ).

Repository (GitHub)
View/report issues

Topics

#postgresql #message-queue #pgmq

Documentation

API reference

License

MIT (license)

Dependencies

async, dotenv, orm, pausable_timer, postgres

More

Packages that depend on dart_pgmq