1Rex::Transaction(3)   User Contributed Perl Documentation  Rex::Transaction(3)
2
3
4

NAME

6       Rex::Transaction - Transaction support
7

DESCRIPTION

9       With this module you can define transactions and rollback scenarios on
10       failure.
11

SYNOPSIS

13        use Rex::Transaction;
14
15        task 'do-something', 'server01', sub {
16          transaction {
17            on_rollback {
18              rmdir '/tmp/mydata';
19            };
20
21            mkdir '/tmp/mydata';
22            upload 'files/myapp.tar.gz', '/tmp/mydata';
23            run 'tar xzf myapp.tar.gz -C /tmp/mydata';
24            if ( $? != 0 ) { die('Error extracting myapp.tar.gz'); }
25          };
26        };
27

EXPORTED FUNCTIONS

29   transaction($codeRef)
30       Start a transaction for $codeRef. If $codeRef dies, Rex will run the
31       on_rollback <https://metacpan.org/pod/Rex::Transaction#on_rollback>
32       code to roll back the transaction.
33
34        task 'deploy', group => 'frontend', sub {
35          on_rollback {
36            rmdir '...';
37          };
38
39          deploy 'myapp.tar.gz';
40        };
41
42        task 'restart_server', group => 'frontend', sub {
43          service apache2 => 'restart';
44        };
45
46        task 'all', group => 'frontend', sub {
47          transaction {
48            do_task [qw/deploy restart_server/];
49          };
50        };
51
52   on_rollback($codeRef)
53       This will execute $codeRef if a step in the transaction
54       <https://metacpan.org/pod/Rex::Transaction#transaction> fails.
55
56
57
58perl v5.36.1                      2023-08-07               Rex::Transaction(3)
Impressum