Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. use Test::More tests => 10;
  5. use Data::ObjectDriver::Driver::DBI;
  6. use Parallel::ForkManager;
  7.  
  8. sub main {
  9. # Init dbh and make sure it was connected in parent process
  10. my $driver = Data::ObjectDriver::Driver::DBI->new(
  11. dsn => 'dbi:mysql:database=test',
  12. username => 'root'
  13. );
  14. my $dbh = $driver->rw_handle;
  15. $dbh->do('SELECT 1');
  16.  
  17. # Prepare fork manager
  18. my $pm = Parallel::ForkManager->new( 10 );
  19. $pm->run_on_finish( sub {
  20. my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data) = @_;
  21. if (defined $data) {
  22. my ($ret,$i) = @$data;
  23. is( $ret, $i, "Can get client unique value from ${i}th child" );
  24. }
  25. });
  26.  
  27. for my $i (1..10) {
  28. $pm->start and next;
  29. my $dbh = $driver->rw_handle;
  30. $dbh->do('SELECT LAST_INSERT_ID(' . $i . ');');
  31. sleep 1;
  32. my ($ret) = $dbh->selectrow_array('SELECT LAST_INSERT_ID();');
  33. $pm->finish(0, [$ret,$i]);
  34. }
  35.  
  36. $pm->wait_all_children;
  37. }
  38.  
  39. main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement