2016-10-14 7 views
0

В настоящее время я создаю систему в своей стажировке с использованием Codeigniter. Эта система сможет создать запрос на обслуживание. После создания запроса электронное письмо будет автоматически отправлено на утверждение (другому пользователю), чтобы уведомить его о запросе. (Это уже реализовано). Затем утверждающий примет решение о том, одобрить или отклонить запрос. Теперь мое новое задание состоит в том, что утверждающий будет получать частые уведомления в своем письме (каждые 30 минут), если он все еще не одобряет или отклоняет запрос в системе. Как я сделаю это возможным?Отправить по электронной почте повторно

+1

Создав простые хроны, который запускает скрипт на периодическую базе, которая проверяет, если работа была сделана. – arkascha

+0

как начать работу cron, im на удаленном сервере? –

+0

Зависит от того, что вы на самом деле подразумеваете под «im на удаленном сервере». Если это означает, что вы вошли в систему и имеете интерактивную оболочку, тогда, я бы сказал, используйте команду 'crontab'. Это хорошо документировано. Прочтите страницу руководства: 'man crontab'. – arkascha

ответ

0

Вам понадобится поле в вашей БД против этого пользователя, которое подсчитывает количество отправленных им по электронной почте и отметку времени, когда было отправлено последнее письмо ... и затем скрипт cron-tabbed (работает один раз каждые 30 минут) проверит, выполнил ли пользователь действие по запросу .... и если нет; отправьте другое электронное письмо и обновите поля БД с количеством отправленных сообщений (приращение) и отметкой времени unix при отправке нового сообщения.

0

Чтобы выполнить это задание, вы должны использовать задание cron. Сценарий, который проверяет, есть ли необработанный запрос или нет. Затем, если у него есть необработанный запрос, пришлите ему электронное письмо.

+0

Как использовать работу cron, если я на удаленном сервере? –

+1

Если вы находитесь в хостинговой компании, у них обычно есть интерфейс администратора для этого. Если вы используете vpn, вы можете использовать crontab в оболочке. – OlajosCs

1

вам необходимо создать контроллер с функцией, которая проверяет статус утверждения и отправляет электронное письмо, если оно не одобрено.

например.

class checkapproval extends CI_Controller { 

    public function index() 
    { 
     // Database query to fetch all pending approval. 
     // $records = $this->db->where('status !=','approve')->get('table_name'); 
     // foreach($records as $record){ 
     // send email 
     // updated email timestamp in databse for record 
     // } 
    } 
} 

Теперь наш следующий шаг, чтобы выполнить эту index каждые 30 минут. Вот работа cron, которую мы требуем.

Нам нужно установить команду в задании cron, как показано ниже, которое выполняется каждые 30 минут.

$php /path/to/project/index.php checkapproval index 

для более подробной информации о CodeIgniter CLI выглядит HERE

+0

моя проблема в том, что мы просто подключены к удаленному серверу с помощью filezilla, –

+1

@CrystalGrace Вам может потребоваться получить доступ cPanel для установки задания cron. второе решение - вам нужно получить вторую машину, которая на 24x7 и вызовите этот метод контроллера с URL-адресом каждые 30 минут. В этом случае нам может потребоваться решить проблему тайм-аута php. – jagad89

Смежные вопросы