Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.1.0
-
Fix Version/s: 4.2.0
-
Component/s: CiviMail, Core CiviCRM, NYSS
-
Labels:None
-
Funding Source:Core Team Contract
Description
For multi-sites with a large number of sites (e.g. NYSS with 80 sites), running on a few servers we might want the number of cronjobs processing a mailing to be limited across ALL sites, not across one specific site. Fortunately MySQL locking mechanism is server-wide and we can reuse this, which also means this will not work on sites with multiple MySQL servers. Briefly, we will:
1.Introduce a global setting that allows the admin to enable server wide locks (false by default)
2. Modify the core locking code, CRM_Core_Lock to enable calling functions to specific if server wide locks or site specific locks should be used. Site specific locks are the default
3. Modify the cron script to read this setting and choose the locking mechanism