summaryrefslogtreecommitdiffstats
path: root/lib/private/BackgroundJob
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2022-01-03 11:17:28 +0100
committerJoas Schilling <coding@schilljs.com>2022-01-18 14:01:24 +0100
commit99b2cf8339f2064d643e8635104f0a79da2eb98a (patch)
tree3cf8d775dd71ded324856b4f4743209fe26c512c /lib/private/BackgroundJob
parenta7eefa293e4735ab9f249f9d12ced3e70823da35 (diff)
downloadnextcloud-server-99b2cf8339f2064d643e8635104f0a79da2eb98a.tar.gz
nextcloud-server-99b2cf8339f2064d643e8635104f0a79da2eb98a.zip
Add hashed attribute column for indexed job existence check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib/private/BackgroundJob')
-rw-r--r--lib/private/BackgroundJob/JobList.php5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/private/BackgroundJob/JobList.php b/lib/private/BackgroundJob/JobList.php
index 3dbcf518f1e..cece8bdf900 100644
--- a/lib/private/BackgroundJob/JobList.php
+++ b/lib/private/BackgroundJob/JobList.php
@@ -82,6 +82,7 @@ class JobList implements IJobList {
->values([
'class' => $query->createNamedParameter($class),
'argument' => $query->createNamedParameter($argumentJson),
+ 'argument_hash' => $query->createNamedParameter(md5($argumentJson)),
'last_run' => $query->createNamedParameter(0, IQueryBuilder::PARAM_INT),
'last_checked' => $query->createNamedParameter($this->timeFactory->getTime(), IQueryBuilder::PARAM_INT),
]);
@@ -90,7 +91,7 @@ class JobList implements IJobList {
->set('reserved_at', $query->expr()->literal(0, IQueryBuilder::PARAM_INT))
->set('last_checked', $query->createNamedParameter($this->timeFactory->getTime(), IQueryBuilder::PARAM_INT))
->where($query->expr()->eq('class', $query->createNamedParameter($class)))
- ->andWhere($query->expr()->eq('argument', $query->createNamedParameter($argumentJson)));
+ ->andWhere($query->expr()->eq('argument_hash', $query->createNamedParameter(md5($argumentJson))));
}
$query->executeStatement();
}
@@ -145,7 +146,7 @@ class JobList implements IJobList {
$query->select('id')
->from('jobs')
->where($query->expr()->eq('class', $query->createNamedParameter($class)))
- ->andWhere($query->expr()->eq('argument', $query->createNamedParameter($argument)))
+ ->andWhere($query->expr()->eq('argument_hash', $query->createNamedParameter(md5($argument))))
->setMaxResults(1);
$result = $query->execute();