Mark QSOs as uploaded in batch to improve performance

This commit is contained in:
Hugo Silva
2023-03-20 19:15:05 +00:00
parent c1d2a98da8
commit 4877b32304
2 changed files with 22 additions and 13 deletions

View File

@@ -61,7 +61,7 @@ class Webadif extends CI_Controller {
$result = $this->logbook_model->push_qso_to_webadif($webadif_api_url, $webadif_api_key, $adif);
if ($result) {
$this->logbook_model->mark_webadif_qsos_sent($qso->COL_PRIMARY_KEY);
$this->logbook_model->mark_webadif_qsos_sent([$qso->COL_PRIMARY_KEY]);
$i++;
} else {
$errorMessage = 'QO-100 Dx Club upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON;
@@ -149,8 +149,15 @@ class Webadif extends CI_Controller {
);
if ($data['qsos']!==null) {
$qsoIDs=[];
foreach ($data['qsos']->result() as $qso) {
$this->logbook_model->mark_webadif_qsos_sent($qso->COL_PRIMARY_KEY);
$qsoIDs[]=$qso->COL_PRIMARY_KEY;
}
$batchSize = 500;
while ($qsoIDs !== []) {
$slice = array_slice($qsoIDs, 0, $batchSize);
$qsoIDs = array_slice($qsoIDs, $batchSize);
$this->logbook_model->mark_webadif_qsos_sent($slice);
}
}