Кто-нибудь имеет опыт использования задания laravel с несколькими транзакциями базы данных в одной очереди? laravel поддерживает это. У меня есть проблема, у меня есть 2 разных подключения к базе данных, а именно база данных A и база данных B, когда я отправляю свою первую работу с использованием базы данных A, все работает, все мои данные вставляются правильно, но когда я отправляю свою вторую работу с использованием базы данных B, транзакция не фиксируется и данные вообще не вставляются, мне нужно перезапустить рабочий, после чего он снова заработает. я использую redis в качестве драйвера очереди.
Транзакция базы данных A
$valid = true;
DB::beginTransaction();
try {
//some logic happen here if got error $valid will be false
//if valid true commit else rollback
$valid ? DB::commit() : DB::rollback();
} catch (Exception $e) {
$valid = false;
DB::rollback();
}
Транзакция базы данных B
$valid = true;
DB::beginTransaction('b-connection');
try {
//some logic happen here if got error $valid will be false
//if valid true commit else rollback
$valid ? DB::connection('b-connection')->commit() : DB::connection('b-connection')->rollback();
} catch (Exception $e) {
$valid = false;
DB::connection('b-connection')->rollback();
}
Как я отправляю задание
DeliveryOrderJob::dispatch($data)->onConnection('swift')->onQueue('do');
В основном оба используют один и тот же лог c, отличается только соединение с базой данных. Пожалуйста, помогите.