'export', 'active' => '1')); if (!$cron_jobs->has_rows) { while (($row_cron_job = $cron_jobs->read_next_row()) !== FALSE) { //tuk da proverqvam dali tozi job ve4e ne e startiran //s dopylnitelni poleta v cron_job_instance !!! //1-vo pole za proverka: cron_job_id //2-ro (novo pole): started_at: s format: 2015_04_03_13_05 $cron_job_id = $row_cron_job['id']; $minute_intervals = $row_cron_job['minute_intervals']; $query = 'SELECT export_name FROM automatic_export WHERE id = (SELECT cron_export_id FROM cron_job WHERE id = '.$cron_job_id.')'; $select_name = new db_select($query); $export_name = ''; if (($row_name = $select_name->read_1st_row()) !== FALSE) { $export_name = $row_name['export_name']; } $date = date("U"); //$date_now = date("Y_m_d_H_i", $date); $arr_date = getdate($date); $year = $arr_date("year"); $month = $arr_date("mon"); $day = $arr_date("mday"); $minute = $arr_date("minutes"); $hour = $arr_date("hours"); for ($i = 0; $i < 60; $i += $minute_intervals) { if ($minute >= $i && $minute < ($i + $minute_intervals)) { $date_prev = mktime($hour, $i, 0, $month, $day, $year); $date_prev_Y = date("Y_m_d_H_i", $date_prev); $date_next = mktime($hour, ($i + $minute_intervals), 0, $month, $day, $year); $date_next_Y = date("Y_m_d_H_i", $date_next); } } // 1. Sravnqvane na teku6ata data s predi6noto i sledva6toto predpolagaemi vremena za start - s ot4itane na intervalite za 4asove i minuti // 1.1. Vzimane na predi6noto predpolagaemo vreme za start // Date of the previous expected start time $date_prev_U = date("Y_m_d_H_i"); // 2. Ako predi6noto vreme za start e nali4no v tablica 'cron_job_instance' i teku6ata data e mejdu tqh - ni6to ne pravim $date_last = ''; $instance_last = new read_cron_job_instance_last($cron_job_id); if (($row_last = $instance_last->read_1st_row()) !== FALSE) { $date_last = $row_last['started_at']; } // 3. Ako predi6noto vreme za start NE e nali4no v tablica 'cron_job_instance' - proverqvame poslednoto startirane: $date_last_started = ''; $instance_last_started = new read_cron_job_instance_last_started($cron_job_id); if (($row_last_started = $instance_last_started->read_1st_row()) !== FALSE) { $date_last_started = $row_last_started['started_at']; } // 3.1 Ako nqma predi6no startirane - startirame cron-job-a // 3.2 Ako ima predi6no startirane, nova proverka: // 3.2.1 Proverqvame statusa mu: // 3.2.1.1 Ako e finish ili finish s gre6ki - startirame cron-job-a // 3.2.1.2 Ako e In Progress - syzdavame teku6tiqt red v 'cron_job_instance' sys status = 'not_started' $new_dv = getdate($control_value+0); if ($old_dv['year'] != $new_dv['year'] || $old_dv['mon'] != $new_dv['mon'] || $old_dv['mday'] != $new_dv['mday']) { $record_changed = TRUE; } // Uslovie za izpylnenieto na tozi cron_job if ($date_last_started == '') $query = 'SELECT export_name FROM automatic_export WHERE id = (SELECT cron_export_id FROM cron_job WHERE id = '.$cron_job_id.')'; $select_name = new db_select($query); $export_name = ''; if (($row_name = $select_name->read_1st_row()) !== FALSE) { $export_name = $row_name['export_name']; } $arr_cron_job_instance['import_export'] = 'Export'; $arr_cron_job_instance['import_export_status'] = 'export_in_progress'; $arr_cron_job_instance['cron_job_id'] = $cron_job_id; $arr_cron_job_instance['imp_exp_name'] = $export_name; $form_tbl_name = 'cron_job_instance'; $SQL_Insert = cmn_::sql_insert_statement_construct($form_tbl_name, $arr_cron_job_instance); $indb = new db_insert($SQL_Insert); $cron_job_instance_id = $indb->insert_id; $query = 'UPDATE `'.$form_tbl_name.'` SET initial_id = '.$cron_job_instance_id.' WHERE id = '.$cron_job_instance_id.' LIMIT 1'; $indb2 = new db_update($query); exec('php /var/www/Hub/cron/test/test2.php 404 > /var/www/Hub/cron/test/4.log 2>&1'); } } ?>