CRM-18516 add job for clearing of caches, separated from the rebuild job
authoreileenmcnaugton <eileen@fuzion.co.nz>
Mon, 16 May 2016 02:06:56 +0000 (14:06 +1200)
committerTim Otten <totten@civicrm.org>
Thu, 19 May 2016 22:50:31 +0000 (15:50 -0700)
api/v3/Job.php

index 38a08fb65b8e3c37cacefe8054377cb6ba3f798c..cfd2ff2396c4cce2e4cf88880b2a6544ac258ef0 100644 (file)
@@ -643,6 +643,24 @@ function civicrm_api3_job_group_rebuild($params) {
   return civicrm_api3_create_success();
 }
 
+/**
+ * Flush smart groups caches.
+ *
+ * This job purges aged smart group cache data (based on the timeout value). Sites can decide whether they want this
+ * job and / or the group cache rebuild job to run. In some cases performance is better when old caches are cleared out
+ * prior to any attempt to rebuild them. Also, many sites are very happy to have caches built on demand, provided the
+ * user is not having to wait for deadlocks to clear when invalidating them.
+ *
+ * @param array $params
+ *
+ * @return array
+ * @throws \API_Exception
+ */
+function civicrm_api3_job_group_cache_flush($params) {
+  CRM_Contact_BAO_GroupContactCache::deterministicCacheRefresh();
+  return civicrm_api3_create_success();
+}
+
 /**
  * Check for CiviCRM software updates.
  *