scheduled job populating change

This commit is contained in:
Yuri Kuznetsov
2021-06-16 13:13:59 +03:00
parent a1c2c9efbd
commit ee1628dbdf
3 changed files with 49 additions and 56 deletions
+17 -20
View File
@@ -198,15 +198,14 @@ class DataManager
*/
public function rebuildScheduledJobs(): void
{
$metadata = $this->metadata;
$entityManager = $this->entityManager;
$jobs = $metadata->get(['entityDefs', 'ScheduledJob', 'jobs'], []);
$jobDefs = array_merge(
$this->metadata->get(['entityDefs', 'ScheduledJob', 'jobs'], []), // for bc
$this->metadata->get(['app', 'scheduledJobs'], [])
);
$systemJobNameList = [];
foreach ($jobs as $jobName => $defs) {
foreach ($jobDefs as $jobName => $defs) {
if (!$jobName) {
continue;
}
@@ -217,8 +216,8 @@ class DataManager
$systemJobNameList[] = $jobName;
$sj = $entityManager
->getRepository('ScheduledJob')
$sj = $this->entityManager
->getRDBRepository('ScheduledJob')
->where([
'job' => $jobName,
'status' => 'Active',
@@ -230,15 +229,15 @@ class DataManager
continue;
}
$job = $entityManager
->getRepository('ScheduledJob')
$existingJob = $this->entityManager
->getRDBRepository('ScheduledJob')
->where([
'job' => $jobName,
])
->findOne();
if ($job) {
$entityManager->removeEntity($job);
if ($existingJob) {
$this->entityManager->removeEntity($existingJob);
}
$name = $jobName;
@@ -247,21 +246,17 @@ class DataManager
$name = $defs['name'];
}
$job = $entityManager->getEntity('ScheduledJob');
$job->set([
$this->entityManager->createEntity('ScheduledJob', [
'job' => $jobName,
'status' => 'Active',
'scheduling' => $defs['scheduling'],
'isInternal' => true,
'name' => $name,
]);
$entityManager->saveEntity($job);
}
$internalScheduledJobList = $entityManager
->getRepository('ScheduledJob')
$internalScheduledJobList = $this->entityManager
->getRDBRepository('ScheduledJob')
->where([
'isInternal' => true,
])
@@ -271,7 +266,9 @@ class DataManager
$jobName = $scheduledJob->get('job');
if (!in_array($jobName, $systemJobNameList)) {
$entityManager->getRepository('ScheduledJob')->deleteFromDb($scheduledJob->id);
$this->entityManager
->getRDBRepository('ScheduledJob')
->deleteFromDb($scheduledJob->id);
}
}
}
@@ -1,7 +1,39 @@
{
"ProcessJobGroup": {
"name": "Process Job Group",
"isSystem": true,
"scheduling": "* * * * *",
"isPreparable": true
},
"ProcessJobQueueQ0": {
"name": "Process Job Queue q0",
"isSystem": true,
"scheduling": "* * * * *"
},
"ProcessJobQueueQ1": {
"name": "Process Job Queue q1",
"isSystem": true,
"scheduling": "*/1 * * * *"
},
"ProcessJobQueueE0": {
"name": "Process Job Queue e0",
"isSystem": true,
"scheduling": "* * * * *"
},
"Dummy": {
"isSystem": true,
"scheduling": "1 */12 * * *"
},
"CheckNewVersion": {
"name": "Check for New Version",
"isSystem": true,
"scheduling": "15 5 * * *"
},
"CheckNewExtensionVersion": {
"name": "Check for New Versions of Installed Extensions",
"isSystem": true,
"scheduling": "25 5 * * *"
},
"CheckEmailAccounts": {
"isPreparable": true
},
@@ -76,41 +76,5 @@
"AuthTokenControl": "*/6 * * * *",
"SendEmailNotifications": "*/2 * * * *",
"ProcessWebhookQueue": "*/5 * * * *"
},
"jobs": {
"Dummy": {
"isSystem": true,
"scheduling": "1 */12 * * *"
},
"CheckNewVersion": {
"name": "Check for New Version",
"isSystem": true,
"scheduling": "15 5 * * *"
},
"CheckNewExtensionVersion": {
"name": "Check for New Versions of Installed Extensions",
"isSystem": true,
"scheduling": "25 5 * * *"
},
"ProcessJobGroup": {
"name": "Process Job Group",
"isSystem": true,
"scheduling": "* * * * *"
},
"ProcessJobQueueQ0": {
"name": "Process Job Queue q0",
"isSystem": true,
"scheduling": "* * * * *"
},
"ProcessJobQueueQ1": {
"name": "Process Job Queue q1",
"isSystem": true,
"scheduling": "*/1 * * * *"
},
"ProcessJobQueueE0": {
"name": "Process Job Queue e0",
"isSystem": true,
"scheduling": "* * * * *"
}
}
}