Skip to content

Commit 2a447f3

Browse files
committed
deploy to newspace2
1 parent 5681029 commit 2a447f3

4 files changed

Lines changed: 54 additions & 32 deletions

File tree

.github/workflows/php-build-and-deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ jobs:
2828
uses: azure/docker-login@v1
2929
with:
3030
login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }}
31-
username: ${{ secrets.AZ_USERNAME }}
31+
username: ${{ secrets.AZ_USERNAME }10
3232
password: ${{ secrets.AZ_PASSWORD }}
3333

3434
- name: 📃 Docker metadata
3535
id: meta
3636
uses: docker/metadata-action@v5
3737
with:
38-
images: ${{ secrets.REGISTRY_LOGIN_SERVER }}/newspace2_9
38+
images: ${{ secrets.REGISTRY_LOGIN_SERVER }}/newspace2_10
3939
flavor: |
4040
latest=false
4141
tags: |

app/Services/Algorithm.php

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,52 +19,64 @@ public function __construct($date = null)
1919

2020
protected function getShiftWithTasks()
2121
{
22-
// $startOfMonth = max($this->date->copy()->startOfMonth(), Carbon::tomorrow());
2322
$startOfMonth = $this->date->copy()->startOfMonth();
2423
$endOfMonth = $this->date->copy()->endOfMonth();
2524

26-
return Shift::query()
25+
$results = collect();
26+
27+
Shift::query()
2728
->with(['task' => fn ($q) => $q->withTrashed()])
2829
->whereNull('soldier_id')
2930
->whereBetween('start_date', [$startOfMonth, $endOfMonth])
3031
->whereHas('task', function ($query) {
3132
$query->withTrashed()
3233
->where('kind', '!=', TaskKind::INPARALLEL->value);
3334
})
34-
->lazy()
35-
->map(fn (Shift $shift): ShiftService => Helpers::buildShift($shift));
35+
->chunk(300, function ($shifts) use (&$results) {
36+
$mapped = $shifts->map(fn (Shift $shift): ShiftService => Helpers::buildShift($shift));
37+
$results = $results->merge($mapped);
38+
});
39+
40+
return $results;
3641
}
3742

3843
protected function getSoldiersDetails()
3944
{
40-
$range = new Range($this->date->copy()->startOfMonth(), $this->date->copy()->endOfMonth());
45+
$range = new Range(
46+
$this->date->copy()->startOfMonth(),
47+
$this->date->copy()->endOfMonth()
48+
);
49+
50+
$results = collect();
4151

42-
return Soldier::where('is_reservist', false)
52+
Soldier::where('is_reservist', false)
4353
->with([
44-
'constraints' => fn ($q) => $q->whereBetween('start_date', [$range->start, $range->end]),
45-
'shifts' => fn ($q) => $q->whereBetween('start_date', [$range->start, $range->end])
54+
'constraints' => fn($q) => $q->whereBetween('start_date', [$range->start, $range->end]),
55+
'shifts' => fn($q) => $q->whereBetween('start_date', [$range->start, $range->end])
4656
->whereHas('task', function ($query) {
4757
$query->withTrashed()->where('kind', '!=', TaskKind::INPARALLEL->value);
4858
}),
4959
])
50-
->lazy()
51-
->map(function (Soldier $soldier) {
52-
$constraints = Helpers::buildConstraints($soldier->constraints);
60+
->chunk(100, function ($soldiers) use (&$results) {
61+
$mapped = $soldiers
62+
->map(function (Soldier $soldier) {
63+
$constraints = Helpers::buildConstraints($soldier->constraints);
5364

54-
$shifts = Helpers::mapSoldierShifts($soldier->shifts, false);
65+
$shifts = Helpers::mapSoldierShifts($soldier->shifts, false);
66+
$shifts->push(...Helpers::addShiftsSpaces($shifts));
67+
$shifts->push(...Helpers::addPrevMonthSpaces($soldier->id, now()));
5568

56-
$shifts->push(...Helpers::addShiftsSpaces($shifts));
57-
$shifts->push(...Helpers::addPrevMonthSpaces($soldier->id, $this->date));
69+
$capacityHold = Helpers::capacityHold($shifts, []);
5870

59-
$capacityHold = Helpers::capacityHold($shifts, []);
71+
return Helpers::buildSoldier($soldier, $constraints, $shifts, $capacityHold);
72+
})
73+
->filter(fn($soldier) => $soldier->hasMaxes());
6074

61-
return Helpers::buildSoldier($soldier, $constraints, $shifts, $capacityHold);
62-
})
63-
->filter(fn ($soldier) => $soldier->hasMaxes())
64-
->shuffle();
65-
}
75+
$results = $results->merge($mapped);
76+
});
6677

67-
public function run()
78+
return $results->shuffle();
79+
} public function run()
6880
{
6981
$shifts = $this->getShiftWithTasks();
7082
$soldiers = $this->getSoldiersDetails();

app/Services/ConcurrentTasks.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,12 @@ public function run()
4040

4141
protected function getShiftsWithTasks()
4242
{
43-
// $startOfMonth = max($this->date->copy()->startOfMonth(), Carbon::tomorrow());
4443
$startOfMonth = $this->date->copy()->startOfMonth();
4544
$endOfMonth = $this->date->copy()->endOfMonth();
4645

47-
return Shift::whereNull('soldier_id')
46+
$results = collect();
47+
48+
Shift::whereNull('soldier_id')
4849
->where(function ($query) use ($startOfMonth, $endOfMonth) {
4950
$query->where('start_date', '<=', $endOfMonth)
5051
->where('start_date', '>=', $startOfMonth);
@@ -53,10 +54,13 @@ protected function getShiftsWithTasks()
5354
$query->withTrashed()
5455
->where('kind', TaskKind::INPARALLEL->value);
5556
})
56-
->get()
57-
->map(fn (Shift $shift): ShiftService => Helpers::buildShift($shift));
58-
}
57+
->chunk(500, function ($shifts) use (&$results) {
58+
$mapped = $shifts->map(fn (Shift $shift): ShiftService => Helpers::buildShift($shift));
59+
$results = $results->merge($mapped);
60+
});
5961

62+
return $results;
63+
}
6064
protected function getSoldiersDetails()
6165
{
6266
$range = new Range($this->date->copy()->startOfMonth(), $this->date->copy()->endOfMonth());

app/Services/Helpers.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,21 +132,27 @@ public static function addPrevMonthSpaces(int $soldierId, $date)
132132

133133
protected static function getLastDayOfLastMonthShifts($soldierId, $lastDay)
134134
{
135-
return Shift::where('soldier_id', $soldierId)
135+
$results = collect();
136+
137+
Shift::where('soldier_id', $soldierId)
136138
->where(function ($query) use ($lastDay) {
137139
$query->whereDate('start_date', $lastDay)
138140
->orWhereDate('end_date', $lastDay);
139141
})
140142
->whereHas('task', function ($query) {
141143
$query->withTrashed()->where('kind', '!=', TaskKind::INPARALLEL->value);
142144
})
143-
->lazy()
144-
->map(fn (Shift $shift): ShiftService => self::buildShift($shift));
145+
->chunk(100, function ($shifts) use (&$results) {
146+
$mapped = $shifts->map(fn (Shift $shift): ShiftService => self::buildShift($shift));
147+
$results = $results->merge($mapped);
148+
});
149+
150+
return $results;
145151
}
146152

147153
public static function updateShiftTable($assignments)
148154
{
149-
set_time_limit(seconds: 0);
155+
// set_time_limit(seconds: 0);
150156
if (empty($assignments)) {
151157
return;
152158
}

0 commit comments

Comments
 (0)