Можем ли мы запланировать работу cron в скрипте php? - PullRequest
0 голосов
/ 08 января 2019

Я новичок в этом cronjobs, и я хочу, чтобы в определенное время и дату, которые находятся в таблице базы данных, отправлялось несколько писем (точнее, писем от 2k до 3k). В настоящее время я звоню своему файл почтовой функции (sendmail.php) для каждой минуты, использующий задание cron и сравнивающий текущее время и время, которое приходит из таблицы db, если true, письмо будет отправлено. При этом я боюсь, что это повлияет на производительность.

Можем ли мы запланировать cronjob сразу после запроса на вставку в скрипт php. Чтобы я мог передать ему эти переменные времени и даты?

Является ли обращение к файлу за каждую минуту работы cron хорошей практикой? Повлияет ли производительность, потому что мое приложение будет одновременно использовать 25 пользователей?

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

Заранее спасибо.

1 Ответ

0 голосов
/ 08 января 2019

за каждую минуту, используя cron

Если вы каждую минуту запускаете работу cron, значит, вы что-то делаете неправильно. Есть проблемы с джиттером и параллелизмом.

сравнение текущего времени и времени из таблицы БД.

Означает ли это, что вы выполняете проверку связи вне СУБД? Это было бы очень глупо.

Можем ли мы запланировать cronjob сразу после запроса на вставку в скрипт php

Да, хотя вам нужно использовать sudo для создания разделения привилегий. Однако иметь (потенциально) тысячи рабочих мест для cron - очень плохая идея.

Хотя в вашем заявлении о проблеме отсутствует лот , исходя из того, что вы сказали, я бы предложил запускать задание cron каждые (скажем) каждые 15 минут, опрашивая базу данных на предмет адресов электронной почты. для отправки в это временное окно - с сопоставлением времени и блокированием параллелизма, выполненным в базе данных.

...