Fixed race condition in genre deletion

This commit is contained in:
Josef Citrine 2017-05-17 02:38:22 +01:00
parent 9e63702387
commit d7fc5f02cf

View file

@ -63,14 +63,17 @@ class DeleteGenre extends Job implements ShouldQueue
// This is done instead of a single UPDATE query in order to // This is done instead of a single UPDATE query in order to
// generate revision logs for the change. // generate revision logs for the change.
$this->genreToDelete->tracks()->each(function ($track) { $tracks = Track::whereGenreId($this->genreToDelete->id)->get();
/** @var Track $track */
$this->genreToDelete->delete();
$chunks = $tracks->chunk(200);
foreach ($chunks as $chunk) {
foreach ($chunk as $track) {
$track->genre_id = $this->destinationGenre->id; $track->genre_id = $this->destinationGenre->id;
$track->save(); $track->save();
$track->updateTags(); $track->updateTags();
}); }
}
$this->genreToDelete->delete();
} }
} }