Реализовал у себя на сайте алгоритм выполнения снапшотов. Работает следующим образом: при запросе робота одной из поисковых систем алгоритм проверяет дату создания файла снапшота. Если файл устарел (с момента создания прошло 30 дней), то PHP запускает командой exec()
NodeJS-скрипт, который обновляет файл снапшота. Проблема в том, что на создание снапшота Нода тратит 3-5 секунд, что не нравится роботу вот совсем. Поэтому единственный способ это исправить, который я смог придумать, это отдавать роботу текущий снапшот, после чего запустить асинхронное отложенное выполнение скрипта. То есть, просто вернуть роботу снапшот (удовлетворив его требование к скорости загрузки страницы). После чего сделать запись в crontab, мол, нужно выполнить команду на выполнение снимка страницы такого-то числа в такое-то время от имени пользователя www-data. Теперь вопрос: во-первых, умеет ли crontab выполнять команды не только с определённым интервалом, а в заданное время и дату? Во-вторых, выполнит ли crontab задачу под пользователем www-data? И в-третьих, может ли crontab удалять запись после выполнения или придется через php открывать файл, искать там нужную запись и стирать её? Спасибо.
умеет ли crontab выполнять команды не только с определённым интервалом, а в заданное время и дату?
нет, конечно. crontab — это формат файла, понимаемый программой cron.
дополнение: формат файла crontab позволяет указывать время, день недели, день месяца, месяц.
выполнит ли crontab задачу под пользователем www-data?
см. предыдущий пункт.
с дополнением: программа cron работает обычно от имени пользователя root
, следовательно может запускать процессы с понижением привилегий.
может ли crontab удалять запись после выполнения?
см. первый пункт.
с дополнением: нет, в функциональность программы cron не заложено никаких манипуляций с файлами формата crontab.
или придется через php открывать файл, искать там нужную запись и стирать её?
гораздо лучшим решением будет периодический запуск вашего скрипта, который будет выполнять необходимую работу (со снапшотами, или чем вам там ещё требуется).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите вывести значения из таблицыперед этим сравнив их
В базе хранится запись Мобильные телефоныТак вот, при выборке и подстановке в атрибут value Ларавель оборачивает первое слово в кавычки - "Мобильные",...