Merge pull request #19087 from civicrm/5.32
[civicrm-core.git] / CRM / Core / BAO / Job.php
index 5cbcd121fda9316c245988c6cce3b00c65c6f730..e78458fd2c7212b110d0d0aae64a7bdd4b610d55 100644 (file)
@@ -109,7 +109,7 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job {
   /**
    * Trim job table on a regular basis to keep it at a good size.
    *
-   * CRM-10513
+   * @see https://issues.civicrm.org/jira/browse/CRM-10513
    *
    * @param int $maxEntriesToKeep
    * @param int $minDaysToKeep
@@ -118,15 +118,16 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job {
     // Prevent the job log from getting too big
     // For now, keep last minDays days and at least maxEntries records
     $query = 'SELECT COUNT(*) FROM civicrm_job_log';
-    $count = CRM_Core_DAO::singleValueQuery($query);
+    $count = (int) CRM_Core_DAO::singleValueQuery($query);
 
     if ($count <= $maxEntriesToKeep) {
       return;
     }
 
-    $count = $count - $maxEntriesToKeep;
+    $count = $count - (int) $maxEntriesToKeep;
 
-    $query = "DELETE FROM civicrm_job_log WHERE run_time < SUBDATE(NOW(), $minDaysToKeep) LIMIT $count";
+    $minDaysToKeep = (int) $minDaysToKeep;
+    $query = "DELETE FROM civicrm_job_log WHERE run_time < SUBDATE(NOW(), $minDaysToKeep) ORDER BY id LIMIT $count";
     CRM_Core_DAO::executeQuery($query);
   }