public function importAction() { $process = new process('import'); if ($process->get('state') == 'running') { // Если процесс запущен, то останавливаем текущий и перезапускаем Zend_Registry::get('logger')->log("Stop import by process stuff " . __CLASS__ . '::' . __FUNCTION__ . ', line ' . __LINE__, Zend_Log::ERR); die('Stop import by process'); } $process->save_state('running')->save_command(''); // Запускаем процесс импорта && Очищаем команду для процесса $pp = new project_partner(); $partners = $pp->select($count, array('filter' => array('status' => '1'))); $alert_report_str = ''; $import_report_str = 'Import start ' . date('H:i:s') . '<br>'; foreach ($partners as $id => $partner) { $import_report_str .= ' ' . $partner->get('name') . date(' H:i:s') . '<br>'; Zend_Registry::get('logger')->log("Start import partner " . $partner->get('id') . ' in ' . __CLASS__ . '::' . __FUNCTION__ . ', line ' . __LINE__, Zend_Log::INFO); $results = $partner->parse_yml(); Zend_Registry::get('logger')->log("Stop import partner " . $partner->get('id') . ' in ' . __CLASS__ . '::' . __FUNCTION__ . ', line ' . __LINE__, Zend_Log::INFO); if (is_array($results) && count($results)) { foreach ($results as $shop_id => $result) { $import_report_str .= " shop: {$result['name']} (id = {$shop_id})<br>"; $import_report_str .= " YML: {$result['yml']}<br>"; if (isset($result['details']['total_imported'])) { $import_report_str .= " imported: {$result['details']['total_imported']}<br>"; $import_report_str .= " available: {$result['details']['total_available']}<br>"; } if (isset($result['details']['total_imported']) && $result['details']['total_imported'] == 0) { $alert_report_str .= "<br> shop: {$result['name']} - total imported: 0<br>"; } if (isset($result['details']['total_available']) && $result['details']['total_available'] == 0) { $alert_report_str .= "<br> shop: {$result['name']} - total available: 0<br>"; } } } $import_report_str .= ' done! ' . date('H:i:s') . '<br><br>'; sleep(2); } $import_report_str .= 'Import done ' . date('H:i:s') . '<br><br>'; // Обновляем цены у подарков $gift = new gift(); $gift->update_prices(); $this->check_waiting_giftsAction(); sleep(2); $this->kill_slashesAction(false); sleep(2); $gift->cache_commit('all'); $et = new email_template('import_results'); $et->assign('IMPORT_RESULTS', $import_report_str)->assign('ALERT_RESULTS', $alert_report_str)->send('*****@*****.**'); $process->save_state('stopped')->save_command(''); // Запускаем процесс импорта && Очищаем команду для процесса die($import_report_str); }