fix:improve import performance

This commit is contained in:
hackerESQ
2024-10-28 20:31:29 -05:00
parent be859ad859
commit 03dda7b947
3 changed files with 14 additions and 14 deletions
+2 -2
View File
@@ -52,8 +52,8 @@ class BackupImport implements WithMultipleSheets, WithEvents
fn() => Artisan::call(SyncHoldingData::class, ['--user' => $this->backupImportModel->user_id]),
fn() => User::find($this->backupImportModel->user_id)->portfolios->each(function($portfolio) {
Artisan::queue(SyncDailyChange::class, ['portfolio_id' => $portfolio->id]);
})
Artisan::queue(SyncDailyChange::class, ['portfolio_id' => $portfolio->id]);
})
]);
},
ImportFailed::class => fn(ImportFailed $event) => $this->backupImportModel->update([
+1 -1
View File
@@ -79,7 +79,7 @@ class DailyChangesSheet implements ToCollection, WithHeadingRow, WithValidation,
public function batchSize(): int
{
return 750;
return 1000;
}
public function rules(): array
+11 -11
View File
@@ -4,7 +4,6 @@ namespace App\Imports\Sheets;
use App\Imports\ValidatesPortfolioAccess;
use App\Models\Holding;
use App\Models\Portfolio;
use App\Models\Transaction;
use Illuminate\Support\Str;
use App\Models\BackupImport;
@@ -85,16 +84,17 @@ class TransactionsSheet implements ToCollection, WithHeadingRow, WithValidation,
);
// stub out related holdings
$chunk->unique('symbol')->each(function($holding) {
Holding::firstOrCreate([
'symbol' => $holding['symbol'],
'portfolio_id' => $holding['portfolio_id']
], [
'quantity' => 0,
'average_cost_basis' => 0,
]);
});
$chunk->unique(fn($item) => $item['symbol'] . $item['portfolio_id'])
->each(function($holding) {
Holding::firstOrCreate([
'symbol' => $holding['symbol'],
'portfolio_id' => $holding['portfolio_id']
], [
'quantity' => 0,
'average_cost_basis' => 0,
]);
});
});
}