composer require rap2hpoutre/nestor
Run some tasks. In this example, the second task fails, everything will be rolled back.
$nestor = new Nestor\Servant;
// Create 1st task
$nestor->task()
->up(function (){
echo "task 1 done\n";
})
->down(function () {
echo "task 1 cancelled\n";
});
// Create 2nd task (will fail)
$nestor->task()
->up(function ($nestor) {
$nestor->fail();
echo "task 2 done\n";
})
->down(function () {
echo "task 2 cancelled\n";
});
// Run all tasks, rollback on fail (LIFO stack)
$nestor->run();
You should see:
task 1 done
task 2 cancelled
task 1 cancelled
Todo: Explain why.
Thanks to DonoSybrix. Feel free to contribute.