|
Lines 124-129
unless ($index_authorities || $index_biblios) {
Link Here
|
| 124 |
$index_authorities = $index_biblios = 1; |
124 |
$index_authorities = $index_biblios = 1; |
| 125 |
} |
125 |
} |
| 126 |
|
126 |
|
|
|
127 |
if ($processes && @record_numbers) { |
| 128 |
die "Argument p|processes cannot be combined with bn|bnumber"; |
| 129 |
} |
| 130 |
|
| 127 |
pod2usage(1) if $help; |
131 |
pod2usage(1) if $help; |
| 128 |
pod2usage( -exitstatus => 0, -verbose => 2 ) if $man; |
132 |
pod2usage( -exitstatus => 0, -verbose => 2 ) if $man; |
| 129 |
|
133 |
|
|
Lines 134-144
_verify_index_state($Koha::SearchEngine::Elasticsearch::AUTHORITIES_INDEX, $dele
Link Here
|
| 134 |
|
138 |
|
| 135 |
my $slice_index = 0; |
139 |
my $slice_index = 0; |
| 136 |
my $slice_count = $processes // 1; |
140 |
my $slice_count = $processes // 1; |
|
|
141 |
my %iterator_options; |
| 137 |
|
142 |
|
| 138 |
if ($slice_count > 1) { |
143 |
if ($slice_count > 1) { |
| 139 |
# Fire up child processes for processing slices from 2 on. This main process will handle slice 1. |
144 |
# Fire up child processes for processing slices from 2 on. This main process will handle slice 1. |
| 140 |
$slice_index = 1; |
145 |
$slice_index = 0; |
| 141 |
for (my $proc = 2; $proc <= $processes; $proc++) { |
146 |
for (my $proc = 1; $proc < $slice_count; $proc++) { |
| 142 |
my $pid = fork(); |
147 |
my $pid = fork(); |
| 143 |
die "Failed to fork a child process\n" unless defined $pid; |
148 |
die "Failed to fork a child process\n" unless defined $pid; |
| 144 |
if ($pid == 0) { |
149 |
if ($pid == 0) { |
|
Lines 148-159
if ($slice_count > 1) {
Link Here
|
| 148 |
} |
153 |
} |
| 149 |
} |
154 |
} |
| 150 |
# Fudge the commit count a bit to spread out the Elasticsearch commits |
155 |
# Fudge the commit count a bit to spread out the Elasticsearch commits |
| 151 |
$commit *= 1 + 0.10 * ($slice_index - 1); |
156 |
$commit *= 1 + 0.10 * $slice_index; |
| 152 |
} |
157 |
_log(1, "Processing slice @{[$slice_index + 1]} of $slice_count\n"); |
| 153 |
|
|
|
| 154 |
my %iterator_options; |
| 155 |
if ($slice_index) { |
| 156 |
_log(1, "Processing slice $slice_index of $slice_count\n"); |
| 157 |
$iterator_options{slice} = { index => $slice_index, count => $slice_count }; |
158 |
$iterator_options{slice} = { index => $slice_index, count => $slice_count }; |
| 158 |
} |
159 |
} |
| 159 |
|
160 |
|
|
Lines 192-207
if ($index_authorities) {
Link Here
|
| 192 |
_do_reindex($next, $Koha::SearchEngine::Elasticsearch::AUTHORITIES_INDEX); |
193 |
_do_reindex($next, $Koha::SearchEngine::Elasticsearch::AUTHORITIES_INDEX); |
| 193 |
} |
194 |
} |
| 194 |
|
195 |
|
| 195 |
if ($slice_index == 1) { |
196 |
if ($slice_index == 0) { |
| 196 |
# Main process, wait for children |
197 |
# Main process, wait for children |
| 197 |
for (my $proc = 2; $proc <= $processes; $proc++) { |
198 |
for (my $proc = 1; $proc < $processes; $proc++) { |
| 198 |
wait(); |
199 |
wait(); |
| 199 |
} |
200 |
} |
| 200 |
} |
201 |
} |
| 201 |
|
202 |
|
| 202 |
=head2 _verify_index_state |
203 |
=head2 _verify_index_state |
| 203 |
|
204 |
|
| 204 |
_ verify_index_state($Koha::SearchEngine::Elasticsearch::BIBLIOS_INDEX, 1); |
205 |
_verify_index_state($Koha::SearchEngine::Elasticsearch::BIBLIOS_INDEX, 1); |
| 205 |
|
206 |
|
| 206 |
Checks the index state and recreates it if requested. |
207 |
Checks the index state and recreates it if requested. |
| 207 |
|
208 |
|
| 208 |
- |
|
|