Scheduler transaction improvement and preferences transaction removal
* Added a transaction to createAndFillShowInstancesPastPopulatedUntilDate to ensure two requests don't trigger duplicate repeated show instances in the calendar. * Removed the transaction from setValue() in Preference and opt for a row-level lock instead.
This commit is contained in:
parent
c7d926f8e8
commit
6959c459cd
2 changed files with 25 additions and 12 deletions
|
@ -847,14 +847,24 @@ SQL;
|
|||
*/
|
||||
public static function createAndFillShowInstancesPastPopulatedUntilDate($needScheduleUntil)
|
||||
{
|
||||
//UTC DateTime object
|
||||
$showsPopUntil = Application_Model_Preference::GetShowsPopulatedUntil();
|
||||
//if application is requesting shows past our previous populated until date, generate shows up until this point.
|
||||
if (is_null($showsPopUntil) || $showsPopUntil->getTimestamp() < $needScheduleUntil->getTimestamp()) {
|
||||
$service_show = new Application_Service_ShowService();
|
||||
$ccShow = $service_show->delegateInstanceCreation(null, $needScheduleUntil, true);
|
||||
Application_Model_Preference::SetShowsPopulatedUntil($needScheduleUntil);
|
||||
$con = Propel::getConnection(CcPrefPeer::DATABASE_NAME);
|
||||
try {
|
||||
$con->beginTransaction();
|
||||
|
||||
//UTC DateTime object
|
||||
$showsPopUntil = Application_Model_Preference::GetShowsPopulatedUntil();
|
||||
//if application is requesting shows past our previous populated until date, generate shows up until this point.
|
||||
if (is_null($showsPopUntil) || $showsPopUntil->getTimestamp() < $needScheduleUntil->getTimestamp()) {
|
||||
$service_show = new Application_Service_ShowService();
|
||||
$ccShow = $service_show->delegateInstanceCreation(null, $needScheduleUntil, true);
|
||||
Application_Model_Preference::SetShowsPopulatedUntil($needScheduleUntil);
|
||||
}
|
||||
$con->commit();
|
||||
} catch (Exception $e) {
|
||||
$con->rollBack();
|
||||
throw $e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue